[python] 파이썬 workalendar를 사용하여 특정 날짜의 이전/다음 휴일 혹은 주말이 포함된 영업일 여부 출력하기

파이썬 workalendar는 다양한 국가의 공휴일 정보를 제공하는 라이브러리입니다. 이를 활용하면 특정 날짜가 영업일인지 여부를 쉽게 확인할 수 있습니다. 이번에는 workalendar를 사용하여 특정 날짜의 이전/다음 휴일 혹은 주말이 포함된 영업일 여부를 출력하는 방법에 대해 알아보겠습니다.

필요한 패키지 설치하기

먼저 workalendar 패키지를 설치해야 합니다. 다음 명령을 터미널에서 실행하여 패키지를 설치합니다.

pip install workalendar

코드 작성하기

다음은 workalendar를 사용하여 특정 날짜의 이전/다음 휴일 혹은 주말이 포함된 영업일 여부를 출력하는 코드입니다.

from workalendar.asia import SouthKorea
import datetime

def is_business_day(date):
    cal = SouthKorea()
    
    # 이전 휴일 여부 확인
    previous_holiday = cal.find_previous_holiday(date)
    if previous_holiday and previous_holiday > date:
        return False
    
    # 다음 휴일 여부 확인
    next_holiday = cal.find_next_holiday(date)
    if next_holiday and next_holiday < date:
        return False
    
    # 주말인지 여부 확인
    if date.weekday() >= 5:
        return False
    
    return True

# 특정 날짜 입력
date = datetime.date(2022, 1, 1)

# 영업일 여부 출력
if is_business_day(date):
    print(f"{date}은(는) 영업일입니다.")
else:
    print(f"{date}은(는) 영업일이 아닙니다.")

위 코드에서 SouthKorea()를 사용하여 한국의 휴일 정보를 가져옵니다. find_previous_holiday() 메서드를 사용하여 특정 날짜 이전의 휴일을 찾고, find_next_holiday() 메서드를 사용하여 특정 날짜 이후의 휴일을 찾습니다. 이후에는 주말인지 확인하여 영업일 여부를 판단합니다.

위 코드를 실행하면 2022년 1월 1일은 토요일로 주말에 속하므로 “2022-01-01은(는) 영업일이 아닙니다.”라는 결과가 출력됩니다.

마무리

이번에는 파이썬 workalendar를 사용하여 특정 날짜의 이전/다음 휴일 혹은 주말이 포함된 영업일 여부를 출력하는 방법에 대해 알아보았습니다. workalendar는 다양한 국가의 휴일 정보를 제공하므로, 필요에 따라 해당 국가의 휴일 정보를 가져와 영업일 여부를 확인할 수 있습니다.