[python] dateutil의 rrule 모듈을 사용하여 특정 날짜 범위에서 특정 요일 추출

파이썬에서 날짜와 시간을 다루는 과정에서 특정 날짜 범위에서 특정 요일을 추출해야 할 때가 있습니다. 이를 위해 dateutil 라이브러리의 rrule 모듈을 사용할 수 있습니다.

rrule 모듈은 recurrence rule을 다루는 모듈로, 주어진 규칙에 따라 일련의 날짜를 생성할 수 있습니다. 이를 활용하여 특정 날짜 범위에서 특정 요일을 추출하는 방법을 알아보겠습니다.

dateutil 설치하기

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

pip install python-dateutil

예제 코드

다음은 dateutilrrule 모듈을 사용하여 특정 날짜 범위에서 특정 요일을 추출하는 예제 코드입니다.

import datetime
from dateutil.rrule import rrule, WEEKLY

def get_weekdays(start_date, end_date, weekday):
    # 주어진 start_date와 end_date 사이에서 매주 주어진 weekday에 해당하는 날짜를 추출하는 함수
    rule = rrule(freq=WEEKLY, byweekday=weekday, dtstart=start_date)
    dates = list(rule.between(start_date, end_date, inc=True))

    return dates

# 예시: 2022년 1월 1일부터 2022년 12월 31일까지 매주 월요일을 추출하는 경우
start_date = datetime.date(2022, 1, 1)
end_date = datetime.date(2022, 12, 31)
weekday = 0  # 월요일은 0에 해당

mondays = get_weekdays(start_date, end_date, weekday)
print(mondays)

위 코드에서는 get_weekdays 함수를 정의하고, start_dateend_date 사이에서 매주 weekday에 해당하는 날짜를 추출하는 로직을 구현합니다. 이후에는 예제로 2022년 1월 1일부터 2022년 12월 31일까지 매주 월요일을 추출하여 출력하는 예시를 포함하고 있습니다.

출력 결과는 리스트 형태로 월요일이 포함된 모든 날짜가 출력됩니다.

결론

이처럼 dateutilrrule 모듈을 사용하면 특정 날짜 범위에서 특정 요일을 추출하는 작업을 간편하게 수행할 수 있습니다. 위의 예제 코드를 참고하여 필요한 기능을 구현해보세요.