[python] dateutil의 parserinfo 클래스를 사용하여 주어진 요일과 가장 가까운 날짜지정

dateutil은 파이썬의 날짜 및 시간 처리를 지원하는 라이브러리로, 다양한 기능을 제공합니다. 그 중 하나는 parserinfo 클래스를 사용하여 주어진 요일과 가장 가까운 날짜를 지정하는 것입니다.

parserinfo 클래스는 dateutil.parser 모듈에 정의되어 있으며, 사용자가 날짜 구문 분석기 동작을 사용자 정의할 수 있도록 합니다. 이를 활용하여 특정 요일과 가장 가까운 날짜를 찾을 수 있습니다.

아래는 parserinfo 클래스를 사용하여 주어진 요일과 가장 가까운 날짜를 지정하는 예제 코드입니다.

from datetime import datetime
from dateutil.parser import parserinfo

# 주어진 요일과 가장 가까운 날짜를 찾는 함수
def find_nearest_weekday(day):
    # parserinfo 클래스를 상속한 사용자 정의 클래스 생성
    class MyParserInfo(parserinfo):
        def __init__(self):
            super().__init__()
            self.daynames = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
    
    # 사용자 정의 클래스를 사용하여 parser 객체 생성
    parser = parserinfo.MyParserInfo()
    
    # 주어진 요일을 datetime 객체로 변환
    target_date = datetime.strptime(day, '%A').date()
    
    # 주어진 요일과 가장 가까운 날짜 탐색
    current_date = datetime.now().date()
    while current_date.strftime('%A') != target_date.strftime('%A'):
        current_date = current_date + timedelta(days=1)
    
    return current_date

# 특정 요일과 가장 가까운 날짜 지정 (예: "Thursday"와 가장 가까운 날짜)
nearest_date = find_nearest_weekday("Thursday")
print(nearest_date)

위 예제 코드를 실행하면 “Thursday”와 가장 가까운 날짜를 출력합니다. 이와 같은 방법으로 다른 요일과 가장 가까운 날짜를 찾을 수 있습니다.

참고 문서: https://dateutil.readthedocs.io/en/stable/parser.html