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

파이썬에는 workalendar라는 유용한 라이브러리가 있습니다. 이 라이브러리를 사용하면 특정 날짜의 공휴일과 주말까지의 간격을 쉽게 계산할 수 있습니다. 이번 글에서는 workalendar를 사용하여 특정 날짜와 오늘 날짜 사이의 공휴일과 주말 간격을 계산하는 방법에 대해 알아보겠습니다.

1. workalendar 설치

먼저 workalendar 라이브러리를 설치해야 합니다. 다음 명령어를 사용하여 설치할 수 있습니다:

pip install workalendar

2. 공휴일과 주말 간격 계산하기

workalendar에서 제공하는 Calendar 클래스를 사용하여 공휴일과 주말 간격을 계산할 수 있습니다. 다음 예제 코드를 참고하세요:

from datetime import date
from workalendar.asia import SouthKorea

# 특정 날짜
specific_date = date(2022, 12, 25)

# 오늘 날짜
today = date.today()

# 한국의 달력 생성
cal = SouthKorea()

# 오늘 날짜부터 특정 날짜까지 공휴일과 주말 간격 계산
holidays_count = cal.get_working_days_delta(today, specific_date)

print(f"공휴일과 주말 간격: {holidays_count}일")

위 코드에서 SouthKorea 클래스는 한국의 달력을 나타냅니다. get_working_days_delta 메서드를 사용하여 특정 날짜와 오늘 날짜 사이의 공휴일과 주말 간격을 계산합니다. 결과는 변수 holidays_count에 저장되고 출력됩니다.

3. 예외 처리

만약 특정 날짜가 이미 지났거나 오늘 날짜보다 미래인 경우에는 예외 처리를 해주는 것이 좋습니다. 다음 예제 코드를 참고하세요:

from datetime import date
from workalendar.asia import SouthKorea

# 특정 날짜
specific_date = date(2022, 12, 25)

# 오늘 날짜
today = date.today()

# 한국의 달력 생성
cal = SouthKorea()

# 예외 처리
if specific_date < today:
    print("오류: 특정 날짜가 이미 지났습니다.")
elif specific_date == today:
    print("오늘은 특정 날짜입니다.")
else:
    # 오늘 날짜부터 특정 날짜까지 공휴일과 주말 간격 계산
    holidays_count = cal.get_working_days_delta(today, specific_date)
    print(f"공휴일과 주말 간격: {holidays_count}일")

위 코드에서 if 문을 사용하여 예외 상황을 처리합니다. 특정 날짜가 이미 지났을 경우에는 “오류: 특정 날짜가 이미 지났습니다.”를 출력하고, 오늘 날짜와 특정 날짜가 같을 경우에는 “오늘은 특정 날짜입니다.”를 출력합니다.

마치며

위에서 소개한 방법을 사용하여 파이썬의 workalendar를 활용하여 주말과 공휴일까지의 날짜 간격을 쉽게 계산할 수 있습니다. 이를 통해 특정 날짜에 대한 업무 계획을 세울 때 유용하게 활용할 수 있습니다. workalendar에는 다른 국가의 달력도 지원하므로, 필요한 경우 해당 국가의 달력을 사용하여 공휴일과 주말 간격을 계산할 수도 있습니다.