[python] pytz를 사용하여 특정 기간 동안의 휴일 목록을 구하는 방법은 무엇인가요?
import pytz
from datetime import datetime, timedelta
def get_holidays(start_date, end_date, timezone):
# 지정된 기간의 모든 날짜 생성
dates = [start_date + timedelta(days=x) for x in range((end_date - start_date).days + 1)]
# 휴일 목록을 저장할 리스트
holidays = []
# 날짜를 확인하며 휴일인지 검사
for date in dates:
# 해당 날짜의 휴일 정보를 가져옴
holiday_info = pytz.timezone(timezone).localize(datetime(date.year, date.month, date.day)).strftime("%Y-%m-%d %H:%M:%S %Z%z")
# 휴일인 경우 리스트에 추가
if 'Holiday' in holiday_info:
holidays.append(date)
return holidays
# 사용 예시
start_date = datetime(2022, 9, 1)
end_date = datetime(2022, 9, 30)
timezone = 'Asia/Seoul'
holiday_list = get_holidays(start_date, end_date, timezone)
print(holiday_list)
위의 코드는 pytz
라이브러리를 사용하여 특정 기간 동안의 휴일을 구하는 방법을 보여줍니다. 우선, start_date
와 end_date
로 지정된 기간 내의 모든 날짜를 생성합니다. 그리고 각 날짜를 pytz.timezone(timezone)
을 사용하여 해당 시간대로 변환한 뒤, strftime
을 통해 날짜와 휴일 정보를 문자열로 변환합니다. 그리고 변환된 문자열에 ‘Holiday’가 포함되어 있는지 확인하여 휴일인 경우에는 holidays
리스트에 추가합니다.
위의 예시 코드에서는 대한민국 휴일을 기준으로 휴일을 구하는 방법을 보여주고 있습니다. start_date
와 end_date
를 원하는 기간으로 설정하고, timezone
을 해당 지역의 시간대로 설정하여 사용하시면 됩니다.