[python] dateutil을 사용하여 특정 날짜와 가장 가까운 이전 날짜 계산

파이썬에서 특정 날짜와 가장 가까운 이전 날짜를 계산하는 방법에는 다양한 방법이 있습니다. 그 중에서도 dateutil 패키지를 사용하는 방법을 알아보겠습니다.

dateutil 패키지 설치하기

먼저 다음 명령어를 사용하여 dateutil 패키지를 설치해야 합니다.

pip install python-dateutil

dateutil을 사용한 코드 예시

다음은 dateutil을 사용하여 특정 날짜와 가장 가까운 이전 날짜를 계산하는 예시 코드입니다.

from dateutil import parser
from datetime import datetime

def get_closest_previous_date(target_date_str, date_list):
    target_date = parser.parse(target_date_str).date()
    
    previous_dates = [parser.parse(date_str).date() for date_str in date_list 
                      if parser.parse(date_str).date() < target_date]
    
    if previous_dates:
        closest_previous_date = max(previous_dates)
        return closest_previous_date
    else:
        return None

target_date_str = "2022-12-01"
date_list = ["2022-11-30", "2022-11-29", "2022-11-28", "2022-11-27"]

closest_previous_date = get_closest_previous_date(target_date_str, date_list)

if closest_previous_date:
    print(f"The closest previous date to {target_date_str} is {closest_previous_date}.")
else:
    print("There is no previous date.")

위 코드에서는 get_closest_previous_date() 함수를 정의하여 특정 날짜와 가장 가까운 이전 날짜를 계산합니다. 함수는 먼저 문자열 형태로 받은 특정 날짜와 리스트 형태로 받은 날짜 목록을 parser.parse()를 사용하여 날짜 객체로 변환합니다. 그 후, target_date보다 작은 날짜들을 선택하여 previous_dates 리스트에 저장합니다. 이후 previous_dates가 비어있지 않은 경우, max() 함수를 사용하여 가장 가까운 이전 날짜를 선택하고 반환합니다. previous_dates가 비어있는 경우, 이전 날짜가 없다는 의미이므로 None을 반환합니다.

위 예시 코드를 실행하면, 2022년 12월 1일과 가장 가까운 이전 날짜인 2022년 11월 30일이 출력됩니다.

결론

위 예시 코드를 통해 dateutil을 사용하여 특정 날짜와 가장 가까운 이전 날짜를 계산하는 방법을 알아보았습니다. dateutil은 파이썬에서 날짜와 시간을 다루는데 유용한 패키지이므로 앞으로 날짜 관련 작업을 할 때 유용하게 활용할 수 있습니다.