[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}'입니다.")
코드 설명
- 먼저,
datetime
모듈에서datetime
클래스와dateutil.relativedelta
모듈에서MO
,TU
,WE
,TH
,FR
상수를 import 합니다. - 특정 날짜와 가장 가까운 과거 평일을 계산하기 위해
target_date
변수에 특정 날짜를 설정합니다. start_date
변수에 계산의 시작일을 설정합니다. 여기서는 특정 날짜로부터 1년 전을 설정하였습니다.weekdays
리스트에 평일(월요일부터 금요일)을 나타내는 상수를 할당합니다.closest_weekday
변수를 초기화합니다.days_count
변수를 0으로 초기화합니다.- while 루프를 사용하여 가장 가까운 과거 평일을 계산합니다. 먼저
check_date
변수에start_date
로부터days_count
일 전의 날짜를 설정합니다. check_date
의 요일이weekdays
리스트에 포함되어 있는지 확인합니다.- 요일이 포함된 경우,
closest_weekday
변수에check_date
값을 할당하여 가장 가까운 과거 평일을 찾습니다. - 계산된 결과를 출력합니다.
참고 사항
dateutil.relativedelta
모듈을 사용하여 날짜의 상대적인 차이를 계산할 수 있습니다.- 위 예시 코드에서는 특정 날짜의 1년 전부터 계산을 시작하지만,
start_date
값을 변경하여 원하는 시작일로 설정할 수 있습니다. - 추가적인 요일이나 예외 상황에 대한 처리는 필요에 따라 코드를 수정할 수 있습니다.
이것은 dateutil
라이브러리를 사용하여 특정 날짜와 가장 가까운 과거 평일을 계산하는 예시입니다. 이 코드를 적용하면 특정 날짜와 가장 가까운 평일을 쉽게 찾을 수 있습니다.