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

때때로 우리는 특정 날짜 범위에서 주어진 요일만 추출하고 싶을 때가 있습니다. 이를 위해 Python의 dateutil 라이브러리에서 제공하는 rrule 모듈을 사용할 수 있습니다. rrule 모듈은 날짜와 시간 규칙을 생성하고 조작하는 데 유용한 기능을 제공합니다.

다음은 dateutil의 rrule 모듈을 사용하여 주어진 날짜 범위에서 특정 요일을 추출하는 방법을 보여줍니다:

먼저, dateutil 및 datetime 모듈을 import 합니다:

from dateutil import rrule
from datetime import datetime, timedelta

다음으로, 주어진 날짜 범위를 설정합니다. 시작 날짜와 끝 날짜를 datetime 객체로 만들어야 합니다:

start_date = datetime(2022, 1, 1)
end_date = datetime(2022, 12, 31)

그런 다음, 매주 특정 요일을 추출하기 위해 rrule 객체를 생성합니다. rrule 함수의 인수로는 주간 범위와 매주 추출하려는 요일을 지정해야 합니다. 여기서는 매주 목요일을 추출하도록 설정하겠습니다:

rule = rrule.rrule(rrule.WEEKLY, byweekday=rrule.TH(3), dtstart=start_date)

마지막으로, rrule 객체를 사용하여 날짜를 추출합니다. between 메서드를 사용하여 주어진 시작 날짜와 끝 날짜 사이의 날짜를 추출할 수 있습니다:

dates = rule.between(start_date, end_date)

이제 dates 리스트에는 주어진 날짜 범위에서 매주 목요일의 날짜가 포함되어 있습니다.

아래는 전체 코드입니다:

from dateutil import rrule
from datetime import datetime

start_date = datetime(2022, 1, 1)
end_date = datetime(2022, 12, 31)

rule = rrule.rrule(rrule.WEEKLY, byweekday=rrule.TH(3), dtstart=start_date)
dates = rule.between(start_date, end_date)

for date in dates:
    print(date.strftime("%Y-%m-%d"))

위의 코드를 실행하면 주어진 날짜 범위에서 매주 목요일의 날짜가 출력됩니다.

이처럼 dateutil의 rrule 모듈을 사용하면 특정 날짜 범위에서 주어진 요일만 추출하는 작업을 쉽게 할 수 있습니다.

참고 자료: