[python] pytz를 사용하여 특정 기간 동안의 평일만을 포함하는 날짜 범위를 구하는 방법은 무엇인가요?
import pytz
import datetime

def get_weekdays(start_date, end_date):
    weekdays = []
    tz = pytz.timezone('Asia/Seoul')  # 원하는 시간대로 설정해주세요. 예: 'Asia/Seoul'
    current_date = start_date

    while current_date <= end_date:
        if current_date.weekday() < 5:  # 0: 월요일, 1: 화요일, ..., 4: 금요일
            weekdays.append(current_date)
        current_date += datetime.timedelta(days=1)

    return weekdays

start_date = datetime.datetime(2022, 1, 1)
end_date = datetime.datetime(2022, 12, 31)
weekdays = get_weekdays(start_date, end_date)

for weekday in weekdays:
    print(weekday.strftime("%Y-%m-%d"))

위의 코드는 pytz와 datetime 모듈을 사용하여 특정 기간(start_date부터 end_date까지) 동안의 평일만을 포함하는 날짜 범위를 찾는 방법을 보여줍니다.

먼저, pytz.timezone을 사용하여 원하는 시간대를 설정합니다. 예시에서는 ‘Asia/Seoul’을 사용했습니다.

그런 다음, start_date부터 end_date까지의 날짜를 하루씩 증가시키면서 각 날짜의 weekday를 확인합니다. weekday가 0부터 4까지인 경우(월요일부터 금요일)에만 평일로 간주하여 weekdays 리스트에 추가합니다.

마지막으로, 찾은 평일들을 출력합니다. strftime을 사용하여 원하는 날짜 형식으로 출력하도록 설정할 수 있습니다. 예시에서는 “%Y-%m-%d” 형식으로 출력했습니다.

참고 문서: