[python] 파이썬 workalendar를 사용하여 특정 날짜의 특정 범위 내에 있는 공휴일과 주말 수 계산하기

파이썬에서 작업하는 경우, 작업 일정을 계획하거나 특정 날짜 범위에서 작업을 수행해야 할 때 주말과 공휴일을 고려해야 할 수도 있습니다. 파이썬의 workalendar 라이브러리는 이러한 요구를 처리하기 위한 매우 유용한 도구입니다. 이 라이브러리를 사용하여 특정 날짜의 특정 범위 안에 있는 주말 및 공휴일 수를 계산하는 방법을 알아보겠습니다.

1. workalendar 설치하기

먼저 파이썬 환경에서 workalendar를 설치해야 합니다. 다음 명령을 사용하여 설치할 수 있습니다.

pip install workalendar

2. 주말 및 공휴일 수 계산하기

다음은 workalendar를 사용하여 특정 날짜의 특정 범위 안에 있는 주말 및 공휴일 수를 계산하는 예제 코드입니다.

from workalendar.asia import SouthKorea

# 특정 날짜 범위 설정
start_date = datetime.date(2022, 9, 1)
end_date = datetime.date(2022, 9, 30)

# 대한민국 휴일 정보 가져오기
cal = SouthKorea()

# 주말 및 공휴일 수 초기화
weekend_count = 0
holiday_count = 0

# 특정 날짜 범위 내에서 주말 및 공휴일 수 계산
for date in cal.yield_dates(start_date, end_date):
    if cal.is_working_day(date):
        weekend_count += 1
    else:
        holiday_count += 1

# 주말 및 공휴일 수 출력
print("주말 수:", weekend_count)
print("공휴일 수:", holiday_count)

위의 코드에서는 workalendar.asia 모듈에서 SouthKorea 클래스를 가져와 대한민국의 휴일 정보를 가져옵니다. 그런 다음, 특정 날짜 범위 내에서 주말과 공휴일 수를 계산합니다. 이를 위해 is_working_day() 함수를 사용하여 작업일인지 확인하고, yield_dates() 함수를 사용하여 특정 날짜 범위 내의 날짜를 생성합니다. 마지막으로 주말 수와 공휴일 수를 출력합니다.

3. 예외 처리하기

휴일 정보를 가져올 때 예외 상황도 처리해야 합니다. 예를 들어 네트워크 문제 등으로 인해 휴일 정보를 가져올 수 없는 경우, 이를 처리하여 적절한 오류 메시지를 출력할 수 있습니다.

from workalendar.asia import SouthKorea

try:
    cal = SouthKorea()
except ConnectionError:
    print("인터넷 연결이 필요한 휴일 정보를 가져올 수 없습니다.")

위의 코드에서는 SouthKorea 클래스의 인스턴스를 생성하려고 할 때 ConnectionError 예외를 처리하여 휴일 정보를 가져올 수 없을 경우 오류 메시지를 출력합니다.

4. 참고 자료

파이썬 workalendar 라이브러리를 사용하여 특정 날짜의 주말 및 공휴일 수를 계산하는 방법에 대해 알아보았습니다. 이를 통해 작업 일정 및 작업 계획을 할 때 더 정확하고 신속하게 주말과 공휴일을 고려할 수 있습니다.