[python] 파이썬 workalendar를 사용하여 특정 날짜와 해당 날짜에 가장 인접한 영업일 계산하기

일반적으로 날짜 계산은 매우 중요한 작업입니다. 특히 영업일을 계산할 때는 주말 및 공휴일을 고려해야 합니다. 이를 위해 파이썬에서는 workalendar라는 라이브러리를 사용할 수 있습니다. workalendar는 다양한 국가 및 지역의 공휴일과 영업일을 처리할 수 있는 기능을 제공합니다.

이번 예제에서는 workalendar를 사용하여 특정 날짜와 해당 날짜에 가장 인접한 영업일을 계산하는 방법에 대해 알아보겠습니다.

1. 라이브러리 설치

workalendar 라이브러리를 설치하기 전에 파이썬 가상환경을 설정하는 것이 좋습니다. 가상환경에서 작업하려면 다음 명령을 실행하세요:

python -m venv <가상환경 이름>

그리고 가상환경을 활성화하세요:

source <가상환경 이름>/bin/activate

이후에는 pip 명령을 사용하여 workalendar를 설치하세요:

pip install workalendar

2. 코드 예제

다음은 workalendar 라이브러리를 사용하여 특정 날짜와 해당 날짜에 가장 인접한 영업일을 계산하는 코드 예제입니다.

from workalendar.europe import UnitedKingdom  # 사용하는 국가 및 지역에 맞는 모듈을 import

# 특정 날짜와 가장 인접한 영업일 계산하기
def get_nearest_business_day(year, month, day):
    cal = UnitedKingdom()  # 사용하는 국가 및 지역에 맞는 캘린더 객체 생성
    date = datetime.date(year, month, day)
    
    # 특정 날짜가 영업일인 경우 바로 반환
    if cal.is_working_day(date):
        return date
    
    # 특정 날짜부터 하루씩 더해가며 가장 가까운 영업일 탐색
    while True:
        date += datetime.timedelta(days=1)
        if cal.is_working_day(date):
            return date

# 특정 날짜와 가장 인접한 영업일 계산하기 예제 실행
year = 2022
month = 12
day = 31
nearest_business_day = get_nearest_business_day(year, month, day)
print("특정 날짜와 가장 인접한 영업일:", nearest_business_day)

3. 실행 결과

위의 코드 예제를 실행하면 다음과 같은 결과를 얻을 수 있습니다:

특정 날짜와 가장 인접한 영업일: 2023-01-02

위 예제에서는 2022년 12월 31일이 토요일로 주말에 해당합니다. 따라서 가장 인접한 영업일은 2023년 1월 2일인 것을 확인할 수 있습니다.

4. 결론

workalendar 라이브러리를 사용하면 특정 날짜와 해당 날짜에 가장 인접한 영업일을 쉽게 계산할 수 있습니다. 본 예제를 통해 workalendar의 사용법을 익히고, 특정 날짜의 영업일 계산에 활용해 보시기 바랍니다.

5. 참고 자료