[python] pytz를 사용하여 특정 기간 동안의 휴일 목록을 구하는 방법은 무엇인가요?
먼저, pytz를 설치해야 합니다. pip를 사용하여 다음 명령을 실행하여 설치할 수 있습니다:
pip install pytz
다음은 pytz를 사용하여 특정 기간 동안의 휴일 목록을 구하는 예제 코드입니다:
import pytz
from datetime import datetime, timedelta
def get_holidays(start_date, end_date):
# 휴일 목록을 저장할 리스트
holidays = []
# start_date와 end_date 사이의 모든 날짜를 체크
current_date = start_date
while current_date <= end_date:
# 현재 날짜가 휴일인지 확인
if current_date.weekday() >= 5: # 토요일(5) 또는 일요일(6)이면 휴일
holidays.append(current_date)
current_date += timedelta(days=1)
return holidays
# 특정 기간을 정의
start_date = datetime(2022, 1, 1)
end_date = datetime(2022, 12, 31)
# 사용할 시간대 설정 (예: 서울 시간대)
timezone = pytz.timezone('Asia/Seoul')
# 시간대를 적용한 시작일과 종료일
start_date = timezone.localize(start_date)
end_date = timezone.localize(end_date)
# 휴일 목록 구하기
holidays = get_holidays(start_date, end_date)
# 결과 출력
for holiday in holidays:
print(holiday.strftime('%Y-%m-%d'))
위 예제 코드에서는 get_holidays
함수를 정의하여 특정 기간 동안의 휴일을 구합니다. 알고리즘은 시작일과 종료일 사이의 모든 날짜를 체크하고, 주말인 경우 휴일로 간주합니다. 이렇게 구한 휴일은 리스트에 저장되며, 마지막으로 결과를 출력합니다.
이 코드를 실행하면 지정한 기간 동안의 휴일 목록이 출력됩니다. 참고로, 특정 국가의 공휴일을 구하려면 그에 맞는 휴일 데이터베이스를 참조하여 적용할 수도 있습니다.