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

파이썬을 사용하여 특정 날짜의 이전 또는 다음 영업일 또는 휴일이 포함된 주말 사이의 모든 날짜를 가져오는 방법을 알아보겠습니다. 이를 위해 workalendar라이브러리를 사용할 것입니다.

작업캘린더(workalendar) 라이브러리 설치

먼저, workalendar라이브러리를 설치해야 합니다. 아래의 명령어를 사용하여 라이브러리를 설치합니다.

pip install workalendar

예제 코드

다음은 workalendar라이브러리를 사용하여 특정 날짜의 이전/다음 영업일 혹은 휴일이 포함된 주말 사이의 모든 날짜를 가져오는 예제 코드입니다.

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

def get_dates_between(start_date, end_date):
    cal = SouthKorea()
    dates = []

    current_date = start_date

    while current_date <= end_date:
        if not cal.is_working_day(current_date):
            dates.append(current_date)

        current_date += timedelta(days=1)

    return dates

# 예제 사용
start_date = date(2022, 11, 1)
end_date = date(2022, 11, 30)

dates = get_dates_between(start_date, end_date)
print(dates)

위 코드에서는 workalendar패키지의 SouthKorea클래스를 사용하여 한국 공휴일 정보를 가져왔습니다. get_dates_between함수는 시작 날짜와 종료 날짜를 입력 받아 해당 기간 동안의 모든 날짜 중에서 영업일이 아닌 날짜를 추출하여 반환합니다.

결과는 다음과 같이 출력됩니다.

[datetime.date(2022, 11, 1), datetime.date(2022, 11, 5), datetime.date(2022, 11, 6), datetime.date(2022, 11, 13), datetime.date(2022, 11, 19), datetime.date(2022, 11, 20), datetime.date(2022, 11, 26), datetime.date(2022, 11, 27)]

위의 예제에서는 2022년 11월 1일부터 11월 30일까지의 기간 동안의 모든 날짜 중 영업일이 아닌 날짜를 가져왔습니다.

참고 자료