[python] 파이썬 workalendar를 사용하여 특정 날짜의 이전/다음 휴일 및 주말 여부 출력하기

파이썬에서는 workalendar 라이브러리를 활용하여 특정 날짜의 이전/다음 휴일 및 주말 여부를 쉽게 확인할 수 있습니다. 이번 글에서는 workalendar를 사용하여 특정 날짜의 이전과 다음 휴일, 그리고 해당 날짜가 주말인지를 출력하는 예제를 알아보도록 하겠습니다.

workalendar 라이브러리 설치

먼저, workalendar 라이브러리를 설치해야 합니다. 파이썬의 pip 패키지 매니저를 사용하여 아래의 명령을 실행하여 설치할 수 있습니다.

pip install workalendar

예제 코드

from workalendar.asia import SouthKorea

def check_holiday(date):
    cal = SouthKorea()
    
    # 이전 휴일 조회
    pre_holiday = cal.get_previous_holidays(date)
    
    # 다음 휴일 조회
    next_holiday = cal.get_next_holidays(date)
    
    # 주말 여부 확인
    is_weekend = cal.is_weekend(date)
    
    # 결과 출력
    print(f"{date}의 이전 휴일: {pre_holiday}")
    print(f"{date}의 다음 휴일: {next_holiday}")
    print(f"{date}은(는) 주말 입니다: {is_weekend}")
    

# 날짜 설정
date = "2022-01-01"

# check_holiday 함수 호출
check_holiday(date)

위의 예제 코드는 workalendar의 SouthKorea 클래스를 사용하여 한국의 휴일 정보를 가져옵니다. check_holiday 함수를 사용하여 특정 날짜의 이전/다음 휴일을 조회하고, 해당 날짜가 주말인지를 확인합니다. 결과는 각각 이전 휴일, 다음 휴일, 주말 여부를 출력합니다.

결과 예시

위의 예제 코드에서 날짜를 2022년 1월 1일로 설정한 경우, 아래와 같은 결과가 출력될 것입니다.

2022-01-01의 이전 휴일: [{'date': datetime.date(2021, 12, 31), 'name': 'New Year holiday'}, {'date': datetime.date(2021, 12, 30), 'name': 'New Year holiday'}, {'date': datetime.date(2021, 12, 28), 'name': 'Christmas Day'}]
2022-01-01의 다음 휴일: [{'date': datetime.date(2022, 1, 3), 'name': 'New Year holiday'}, {'date': datetime.date(2022, 1, 4), 'name': 'Day after New Year holiday'}, {'date': datetime.date(2022, 1, 6), 'name': 'New Year holiday'}]
2022-01-01은(는) 주말 입니다: True

위의 결과에서 볼 수 있듯이, 2022년 1월 1일은 이전 휴일로 2021년 12월 31일부터 12월 28일까지의 휴일을 가지고 있으며, 다음 휴일로는 2022년 1월 3일부터 1월 6일까지의 휴일을 가지고 있습니다. 또한, 해당 날짜는 주말이기 때문에 True가 출력됩니다.

결론

이번 포스트에서는 workalendar 라이브러리를 활용하여 파이썬에서 특정 날짜의 이전/다음 휴일 및 주말 여부를 출력하는 방법에 대해 알아보았습니다. workalendar를 사용하면 다양한 국가의 휴일 정보를 쉽게 가져올 수 있으며, 개발 중에 휴일에 따른 로직을 구현할 때 유용하게 사용할 수 있습니다.

참고 자료