[python] 파이썬 workalendar를 사용하여 특정 날짜의 이전/다음 휴일 혹은 영업일이 기준 날짜로부터 며칠 떨어져 있는지 계산하고 해당 날짜까지의 모든 날짜 가져오기

파이썬에서 특정 날짜의 이전/다음 휴일 혹은 영업일이 기준 날짜로부터 며칠 떨어져 있는지 계산하고, 해당 날짜까지의 모든 날짜를 가져오는 방법에 대해 알아보겠습니다. 이를 위해 workalendar라이브러리를 사용할 것입니다. Workalendar는 국가 및 지역별로 휴일과 영업일을 계산해주는 파이썬 라이브러리입니다.

workalendar 설치하기

먼저 workalendar를 설치해야합니다. 파이썬 패키지 관리자인 pip를 사용하여 설치할 수 있습니다. 다음 명령을 사용하여 workalendar를 설치하세요.

pip install workalendar

휴일 계산하기

workalendar를 사용하여 특정 날짜의 이전/다음 휴일을 계산하는 방법은 다음과 같습니다.

from workalendar.europe import France

cal = France()

# 이전 휴일 계산
previous_holiday = cal.get_previous_holiday(date)

# 다음 휴일 계산
next_holiday = cal.get_next_holiday(date)

print(previous_holiday)
print(next_holiday)

위 코드에서 date 변수는 기준이 되는 날짜를 의미합니다. get_previous_holiday 함수는 기준 날짜 이전의 가장 가까운 휴일을 반환하고, get_next_holiday 함수는 기준 날짜 다음의 가장 가까운 휴일을 반환합니다.

영업일 계산하기

이제 workalendar를 사용하여 특정 날짜로부터 며칠 떨어진 영업일을 계산해보겠습니다. 영업일 계산을 위해서는 해당 국가나 지역의 휴일 정보를 적절히 설정해야합니다.

from workalendar.europe import France

cal = France()

# 며칠 뒤의 영업일 계산
business_days = cal.add_working_days(date, num_days)

print(business_days)

위 코드에서 num_days 변수는 기준 날짜로부터 며칠 떨어진 영업일을 계산할지를 나타냅니다. add_working_days 함수는 기준 날짜로부터 num_days 만큼 떨어진 영업일을 반환합니다.

해당 날짜까지의 모든 날짜 가져오기

workalendar를 사용하여 특정 날짜까지의 모든 날짜를 가져오는 방법은 다음과 같습니다.

from workalendar.europe import France

cal = France()

# 해당 날짜까지의 모든 날짜 가져오기
all_dates = cal.yeardatescalendar(start_year, end_year)

for year in all_dates:
    for month in year:
        for week in month:
            for day in week:
                if day:
                    print(day)

위 코드에서 start_yearend_year는 가져올 날짜의 범위를 나타냅니다. yeardatescalendar 함수는 주어진 범위 내의 모든 날짜를 반환합니다. 반환된 날짜를 순회하여 필요한 처리를 수행할 수 있습니다.

참고 자료

위에서 설명한 방법을 사용하여 파이썬에서 휴일과 영업일을 계산하고 날짜를 가져올 수 있습니다. workalendar는 다양한 국가와 지역을 지원하므로, 필요한 경우 해당 국가나 지역에 맞게 적절한 모듈을 선택하여 사용하면 됩니다.