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

먼저, pytz를 설치해야 합니다. 다음 명령어를 사용하여 설치할 수 있습니다.

pip install pytz

다음은 pytzdatetime을 사용하여 평일만 포함하는 시간 범위를 계산하는 예시 코드입니다.

import pytz
from datetime import datetime, timedelta

def get_weekday_time_range(start_date, end_date):
    timezone = pytz.timezone('Asia/Seoul')  # 사용하고자 하는 타임존 설정
    weekday_time_range = []

    current_date = start_date
    while current_date <= end_date:
        if current_date.weekday() < 5:  # 월요일(0)부터 금요일(4)까지만 포함
            start_time = timezone.localize(datetime.combine(current_date, datetime.min.time()))
            end_time = start_time + timedelta(days=1) - timedelta(milliseconds=1)
            weekday_time_range.append((start_time, end_time))

        current_date += timedelta(days=1)

    return weekday_time_range

# 예시: 2022년 1월 1일부터 2022년 1월 10일까지의 평일 시간 범위를 구하기
start_date = datetime(2022, 1, 1).date()
end_date = datetime(2022, 1, 10).date()

weekday_time_range = get_weekday_time_range(start_date, end_date)
for start_time, end_time in weekday_time_range:
    print("시작 시간:", start_time)
    print("종료 시간:", end_time)
    print()

이 코드는 start_date부터 end_date까지의 평일만을 포함하는 시간 범위를 구합니다. 예시에서는 2022년 1월 1일부터 2022년 1월 10일까지의 평일 시간 범위를 출력합니다. 코드에서 사용하는 타임존은 Asia/Seoul로 설정되어 있으며, 필요에 따라 수정할 수 있습니다.

참고 문서: