[python] 파이썬 workalendar를 사용하여 특정 날짜의 이전/다음 휴일 혹은 주말이 포함되는 주말 사이의 모든 날짜 가져오기

파이썬에서는 workalendar이라는 라이브러리를 사용하여 특정 국가의 휴일과 주말을 가져올 수 있습니다. 이 라이브러리는 다양한 국가의 달력 및 휴일 정책을 지원하며, 특정 날짜의 이전/다음 휴일 또는 주말 사이의 모든 날짜를 쉽게 가져올 수 있습니다. 아래는 이를 수행하는 예제 코드입니다.

필요한 라이브러리 설치하기

먼저, workalendar 라이브러리를 설치해야 합니다. 다음 명령을 사용하여 라이브러리를 설치할 수 있습니다.

pip install workalendar

코드 예제

아래 예제 코드에서는 한국의 휴일과 주말을 가져오도록 설정하였습니다. 사용되는 workalendarSouthKorea 클래스는 한국의 달력과 휴일을 지원합니다.

from workalendar.asia import SouthKorea
from datetime import datetime, timedelta

def get_holidays_and_weekends(start_date, end_date):
    cal = SouthKorea()
    holidays = cal.holidays(start_date, end_date)
    
    weekends = []
    current_date = start_date
    
    while current_date <= end_date:
        if current_date.weekday() >= 5: # 토요일(5) 또는 일요일(6)인 경우
            weekends.append(current_date)
        current_date += timedelta(days=1)
    
    return holidays, weekends

# 사용 예시
start = datetime(2021, 1, 1)
end = datetime(2021, 12, 31)

holidays, weekends = get_holidays_and_weekends(start, end)

print("휴일:")
for holiday in holidays:
    print(holiday)

print("\n주말:")
for weekend in weekends:
    print(weekend)

위의 코드 예제에서는 get_holidays_and_weekends 함수를 정의하여 특정 범위 내의 휴일과 주말을 가져오도록 구현하였습니다. 입력으로 시작일과 종료일이 주어지면, 이전/다음 휴일 또는 주말 사이에 있는 모든 날짜를 가져옵니다.

실제로 실행해보면 시작일부터 종료일까지의 휴일과 주말이 정상적으로 출력되는 것을 확인할 수 있습니다.

참고: workalendar PyPI 페이지