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

일반적으로 파이썬에서 날짜와 시간과 관련된 작업을 할 때 datetime 모듈을 사용합니다. 그러나 datetime 모듈만으로는 특정 날짜와 가장 가까운 과거 날짜를 계산하기가 어려울 수 있습니다. 이럴 때 유용하게 사용할 수 있는 라이브러리 중 하나가 dateutil 입니다. dateutildatetime 모듈보다 훨씬 강력한 날짜 및 시간 처리 기능을 제공합니다.

1. dateutil 설치

먼저 dateutil을 설치해야 합니다. 아래의 명령어를 사용하여 설치할 수 있습니다.

pip install python-dateutil

2. 코드 예제

dateutil을 사용하여 특정 날짜와 가장 가까운 과거 날짜를 계산해보겠습니다. 아래의 코드 예제를 참고하시기 바랍니다.

from datetime import datetime
from dateutil import parser

def find_nearest_past_date(target_date, date_list):
    target_datetime = parser.parse(target_date)
    past_dates = [parser.parse(date) for date in date_list if parser.parse(date) < target_datetime]
    nearest_past_date = max(past_dates, default=None)
    return nearest_past_date

target_date = "2022-09-30"
date_list = ["2022-09-20", "2022-09-28", "2022-10-01", "2022-10-05"]

nearest_past_date = find_nearest_past_date(target_date, date_list)
print(f"Target date: {target_date}")
print(f"Nearest past date: {nearest_past_date.strftime('%Y-%m-%d') if nearest_past_date else 'None'}")

위의 코드는 find_nearest_past_date 함수를 정의하고, 해당 함수를 통해 특정 날짜와 가장 가까운 과거 날짜를 계산하는 예제입니다. 함수는 target_datedate_list를 인자로 받아, target_date보다 작은 모든 과거 날짜들을 past_dates 리스트에 저장합니다. 최대값 함수 max를 사용하여 past_dates 리스트에서 가장 가까운 과거 날짜를 찾습니다.

위의 예제에서는 target_date를 “2022-09-30”으로 설정하고, date_list에 여러 날짜들을 넣어주었습니다. 결과적으로 출력되는 값은 target_date와 가장 가까운 과거 날짜인 “2022-09-28”이 출력됩니다.

3. 참고 자료