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

파이썬에서 업무 관련된 일정을 다루기 위해 workalendar라는 라이브러리를 사용할 수 있습니다. 이 라이브러리를 사용하면 특정 날짜 기준으로 이전/다음 영업일로 전환하거나, 주말이나 휴일을 포함하는 날짜 범위를 구할 수 있습니다.

workalendar 설치하기

workalendar를 사용하기 위해서는 먼저 해당 라이브러리를 설치해야 합니다. 아래의 명령어를 사용하여 workalendar를 설치해 주세요.

pip install workalendar

이전/다음 영업일 구하기

특정 날짜에 대해 이전 또는 다음 영업일을 구하기 위해서는 workalendarCalendar 클래스를 사용합니다. 아래의 코드는 현재 날짜를 기준으로 다음 영업일을 구하는 예시입니다.

import datetime
from workalendar.asia import SouthKorea

cal = SouthKorea()
today = datetime.date.today()

next_working_day = cal.add_working_days(today, 1)
print(next_working_day)

이전 영업일을 구하려면 add_working_days() 메소드의 두 번째 인자로 음수 값을 넣어주면 됩니다.

주말이나 휴일이 포함된 날짜 범위 가져오기

workalendar를 사용하여 주말이나 휴일이 포함된 날짜 범위를 구하기 위해서는 Calendar 클래스의 workday 메소드를 사용합니다. 아래의 코드는 특정 날짜를 기준으로 10일 간의 주말과 휴일을 포함한 날짜 범위를 가져오는 예시입니다.

import datetime
from workalendar.asia import SouthKorea

cal = SouthKorea()
start_date = datetime.date(2022, 1, 1)
end_date = start_date + datetime.timedelta(days=10)

date_range = cal.workday(start_date, end_date)
print(date_range)

위의 코드를 실행하면 start_date부터 end_date까지의 날짜 중에서 주말이나 휴일을 제외한 모든 날짜가 출력됩니다.

이와 같이 workalendar를 사용하면 특정 날짜의 이전/다음 영업일을 구하거나, 주말이나 휴일이 포함된 날짜 범위를 손쉽게 구할 수 있습니다.

참고 자료