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

일반적으로 과거에 특정 날짜와 가장 가까운 평일을 계산하는 것은 날짜 및 시간 처리에 도움이 되는 dateutil 라이브러리를 사용하여 수행할 수 있습니다.

dateutil 라이브러리 설치

먼저, dateutil 라이브러리를 설치해야 합니다. 아래의 명령어를 사용하여 pip를 통해 설치할 수 있습니다.

pip install python-dateutil

코드 예시

다음은 dateutil 라이브러리를 사용하여 특정 날짜와 가장 가까운 과거 평일을 계산하는 예시 코드입니다.

from datetime import datetime
from dateutil.relativedelta import MO, TU, WE, TH, FR

# 특정 날짜 설정
date_string = "2022-05-12"
target_date = datetime.strptime(date_string, "%Y-%m-%d").date()

# 계산 시작일 설정
start_date = target_date - relativedelta(years=1)

# 평일(월요일 ~ 금요일) 리스트 생성
weekdays = [MO, TU, WE, TH, FR]

# 가장 가까운 과거 평일 계산
closest_weekday = None
days_count = 0

while not closest_weekday:
    days_count += 1
    check_date = start_date - relativedelta(days=days_count)
    if check_date.weekday() in weekdays:
        closest_weekday = check_date

# 결과 출력
print(f"특정 날짜 '{target_date}'와 가장 가까운 과거 평일은 '{closest_weekday}'입니다.")

코드 설명

  1. 먼저, datetime 모듈에서 datetime 클래스와 dateutil.relativedelta 모듈에서 MO, TU, WE, TH, FR 상수를 import 합니다.
  2. 특정 날짜와 가장 가까운 과거 평일을 계산하기 위해 target_date 변수에 특정 날짜를 설정합니다.
  3. start_date 변수에 계산의 시작일을 설정합니다. 여기서는 특정 날짜로부터 1년 전을 설정하였습니다.
  4. weekdays 리스트에 평일(월요일부터 금요일)을 나타내는 상수를 할당합니다.
  5. closest_weekday 변수를 초기화합니다.
  6. days_count 변수를 0으로 초기화합니다.
  7. while 루프를 사용하여 가장 가까운 과거 평일을 계산합니다. 먼저 check_date 변수에 start_date로부터 days_count일 전의 날짜를 설정합니다.
  8. check_date의 요일이 weekdays 리스트에 포함되어 있는지 확인합니다.
  9. 요일이 포함된 경우, closest_weekday 변수에 check_date 값을 할당하여 가장 가까운 과거 평일을 찾습니다.
  10. 계산된 결과를 출력합니다.

참고 사항

이것은 dateutil 라이브러리를 사용하여 특정 날짜와 가장 가까운 과거 평일을 계산하는 예시입니다. 이 코드를 적용하면 특정 날짜와 가장 가까운 평일을 쉽게 찾을 수 있습니다.