[python] dateutil을 사용하여 주말 및 휴일 검사
일반적으로 날짜 연산을 수행하기 위해 많은 사람들이 Python의 datetime 모듈을 사용합니다. 그러나 datetime 모듈만으로는 주말이나 휴일 여부를 쉽게 확인할 수 없습니다. 이러한 경우 dateutil 패키지를 사용하면 훨씬 간편하게 주말이나 휴일을 검사할 수 있습니다.
dateutil 설치 및 가져오기
dateutil 패키지는 pip를 사용하여 간단하게 설치할 수 있습니다.
pip install python-dateutil
다음과 같이 dateutil 패키지를 가져옵니다.
from dateutil import rrule
from dateutil.relativedelta import MO
주말 및 휴일 검사
주말 및 휴일을 검사하기 위해서는 먼저 휴일 목록을 생성해야 합니다. 휴일 목록은 Python의 set 자료구조를 사용하여 구현할 수 있습니다. 예를 들어, 다음과 같이 휴일 목록을 설정합니다.
holidays = {datetime.date(2021, 1, 1), # New Year's Day
datetime.date(2021, 12, 25) # Christmas Day
}
이제 주말 및 휴일을 검사하는 함수를 작성해보겠습니다.
def is_weekend_or_holiday(date):
# 주말 여부 확인
if date.weekday() >= 5:
return True
# 휴일 여부 확인
if date in holidays:
return True
return False
주말 여부를 확인하기 위해서는 주어진 날짜의 weekday()
메서드를 사용하여 해당 날짜의 요일을 확인합니다. 요일 값이 5 이상이면 토요일이나 일요일입니다. 휴일 여부를 확인하기 위해서는 주어진 날짜가 휴일 목록에 있는지 확인합니다.
예제
다음은 2021년 1월부터 2022년 1월까지의 주말 및 휴일을 출력하는 예제 코드입니다.
start_date = datetime.date(2021, 1, 1)
end_date = datetime.date(2022, 1, 1)
for date in rrule.rrule(rrule.DAILY, dtstart=start_date, until=end_date):
if is_weekend_or_holiday(date):
print(date)
위의 예제 코드를 실행하면 2021년 1월 1일부터 2022년 1월 1일까지의 주말 및 휴일을 출력합니다.
결론
Python의 dateutil 패키지를 사용하면 주말이나 휴일 여부를 간편하게 확인할 수 있습니다. 휴일 목록을 설정하고, 주말이나 휴일 여부를 확인하는 함수를 작성하여 날짜 연산에 유용하게 사용할 수 있습니다.