[python] 파이썬 workalendar를 사용하여 특정 날짜의 이전/다음 영업일이 기준 날짜로부터 며칠 떨어져 있는지 계산하기

소개

파이썬에서 날짜와 관련된 작업을 수행할 때, 특히 비즈니스 관련 작업에서는 영업일 계산이 중요합니다. 이전/다음 영업일 계산은 특정 날짜로부터 며칠이나 떨어져 있는지 확인하는 데에 유용합니다. 이를 위해 workalendar 패키지를 사용하여 파이썬 코드로 쉽게 구현할 수 있습니다.

workalendar 패키지 설치하기

workalendar 패키지는 파이썬에서 다양한 국가와 지역의 공휴일, 휴일 등을 처리하는 기능을 제공해주는 패키지입니다. 다음과 같이 pip 명령어를 사용하여 설치할 수 있습니다.

pip install workalendar

코드 예제

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

def get_previous_business_day(start_date: date) -> date:
    cal = SouthKorea()
    previous_day = start_date - timedelta(days=1)

    while cal.is_working_day(previous_day):
        previous_day -= timedelta(days=1)

    return previous_day

def get_next_business_day(start_date: date) -> date:
    cal = SouthKorea()
    next_day = start_date + timedelta(days=1)

    while not cal.is_working_day(next_day):
        next_day += timedelta(days=1)

    return next_day

# 사용 예시
start_date = date(2022, 1, 1)
previous_business_day = get_previous_business_day(start_date)
next_business_day = get_next_business_day(start_date)

print(f"기준 날짜: {start_date}")
print(f"이전 영업일: {previous_business_day}")
print(f"다음 영업일: {next_business_day}")

설명

위의 코드 예제에서는 workalendar 패키지에서 SouthKorea 클래스를 사용하여 대한민국의 영업일 정보를 가져오고 있습니다. get_previous_business_day 함수는 특정 날짜의 이전 영업일을 계산하며, get_next_business_day 함수는 특정 날짜의 다음 영업일을 계산합니다.

각 함수에서는 timedelta를 사용하여 이전 날짜와 다음 날짜를 계산하고, is_working_day 메서드를 사용하여 주말이나 공휴일인지 확인합니다. 주말이나 공휴일일 경우에는 계속해서 날짜를 계산하여 영업일을 찾습니다.

위의 예시 코드에서는 2022년 1월 1일을 기준으로 이전 영업일과 다음 영업일을 계산하여 출력합니다.

결론

파이썬의 workalendar 패키지를 사용하면 특정 날짜의 이전/다음 영업일을 쉽게 계산할 수 있습니다. 이를 활용하여 비즈니스 관련 작업이나 날짜 계산에 유용하게 활용할 수 있습니다.

참고 자료