[python] dateutil의 rrule 모듈을 사용하여 특정 요일이 포함된 상대적인 날짜 계산

dateutil은 파이썬에서 날짜와 시간을 다루는 데 매우 유용한 라이브러리입니다. 그 중에서도 rrule 모듈은 날짜 규칙을 생성하고 조작하는 데 사용됩니다. 이 모듈을 사용하여 특정 요일이 포함된 상대적인 날짜를 계산해보겠습니다.

먼저, dateutil과 rrule 모듈을 설치해야 합니다. 아래의 명령어를 실행하여 설치할 수 있습니다.

pip install python-dateutil

그런 다음, 아래의 예제 코드를 참고하여 특정 요일이 포함된 상대적인 날짜를 계산할 수 있습니다.

from dateutil.rrule import rrule, WEEKLY
from datetime import datetime, timedelta

# 시작일과 종료일을 설정합니다.
start_date = datetime(2022, 1, 1)
end_date = datetime(2022, 12, 31)

# 매주 화요일을 선택하기 위한 필터를 추가합니다.
rrule_options = {
    'byweekday': [1],  # 0부터 월요일, 1부터 화요일을 의미합니다.
}

# rrule을 사용하여 특정 요일이 포함된 날짜를 생성합니다.
rrule_dates = list(rrule(WEEKLY, dtstart=start_date, until=end_date, **rrule_options))

# 생성된 날짜를 출력합니다.
for date in rrule_dates:
    print(date.strftime("%Y-%m-%d"))

위의 코드에서는 2022년 1월 1일부터 12월 31일까지의 범위에서 매주 화요일을 선택하는 상대적인 날짜를 계산하고 출력하고 있습니다. byweekday 매개변수를 사용하여 선택할 요일을 설정할 수 있습니다. 이때, 월요일부터 0부터 시작하여 순서대로 1이 화요일을 나타냅니다.

출력 결과는 아래와 같이 나타납니다.

2022-01-04
2022-01-11
2022-01-18
...
2022-12-20
2022-12-27

위의 예제 코드를 참고하여 원하는 날짜 범위와 요일을 설정하여 상대적인 날짜를 계산해볼 수 있습니다.