[python] pytz를 사용하여 특정 기간 동안의 평일만을 포함하는 날짜 범위를 구하는 방법은 무엇인가요?
먼저, datetime 모듈과 pytz 모듈을 import합니다:
from datetime import datetime, timedelta
import pytz
다음으로, 시작 날짜와 종료 날짜를 정의하고 로컬 시간대를 설정합니다:
start_date = datetime(2022, 1, 1)
end_date = datetime(2022, 1, 31)
local_tz = pytz.timezone('Asia/Seoul')
평일을 저장할 빈 리스트를 만듭니다:
weekdays = []
다음으로, 시작 날짜부터 종료 날짜까지 하루씩 증가하는 반복문을 만듭니다:
current_date = start_date
while current_date <= end_date:
# 현재 날짜의 요일을 구합니다 (0: 월요일, 1: 화요일, ..., 6: 일요일)
weekday = current_date.weekday()
# 요일이 0부터 4까지인 경우 (월요일부터 금요일까지)만 평일로 간주합니다
if weekday >= 0 and weekday <= 4:
# 로컬 시간대로 변환 후 평일 리스트에 추가합니다
weekdays.append(current_date.astimezone(local_tz))
# 다음 날짜로 이동합니다
current_date += timedelta(days=1)
마지막으로, 평일 리스트를 출력하거나 사용할 수 있습니다:
for weekday in weekdays:
print(weekday.strftime('%Y-%m-%d %H:%M:%S %Z%z'))
이 예제 코드는 2022년 1월 1일부터 1월 31일까지의 평일 리스트를 생성합니다. 시작 날짜와 종료 날짜, 그리고 로컬 시간대는 필요에 맞게 변경하여 사용하십시오.
참고: pytz 모듈은 pip를 사용하여 설치할 수 있습니다:
pip install pytz