[python] 파이썬 workalendar를 사용하여 특정 날짜의 직전 영업일과 휴일 혹은 주말까지의 간격 계산하기

먼저 파이썬에서 workalendar 라이브러리를 설치해야 합니다. 아래의 명령을 사용하여 라이브러리를 설치할 수 있습니다.

pip install workalendar

설치가 완료되었다면 다음과 같이 코드를 작성하여 특정 날짜의 직전 영업일과 휴일 혹은 주말과의 간격을 계산할 수 있습니다.

from workalendar.america import UnitedStates
from datetime import date, timedelta

# UnitedStates 클래스의 인스턴스를 생성합니다.
cal = UnitedStates()

# 특정 날짜를 지정합니다.
target_date = date(2022, 9, 30)

# 직전 영업일을 계산합니다.
previous_biz_day = cal.find_following_working_day(target_date, -1)

# 주말과 휴일의 간격을 계산합니다.
holidays = cal.holidays(target_date.year)
holidays.append(target_date)  # 특정 날짜를 휴일로 추가합니다.
weekend_days = cal.get_weekend_days()

delta = 0
while (previous_biz_day + timedelta(days=delta)) in holidays or (previous_biz_day + timedelta(days=delta)).weekday() in weekend_days:
    delta += 1

# 결과 출력
print(f"직전 영업일: {previous_biz_day}")
print(f"특정 날짜로부터의 간격: {delta}일")

위의 코드에서는 미국을 기준으로 하여 workalendar.america 모듈에서 UnitedStates 클래스를 사용하였습니다. 다른 나라나 지역을 기준으로 계산하려면 해당 모듈과 클래스를 import하여 사용하면 됩니다. 결과적으로 직전 영업일과 특정 날짜의 간격을 출력하게 됩니다.

이와 같이 workalendar를 사용하여 파이썬에서 특정 날짜의 직전 영업일과 휴일 혹은 주말까지의 간격을 쉽게 계산할 수 있습니다.

참고 자료: