[Python] 월 마지막 날짜 찾기, 2가지 방법
July 09, 2024
특정 년도와 특정 달의 마지막 날짜를 계산하는 방법에 대해서 알아보겠습니다.
1. calendar를 이용한 방법
calendar.monthrange(year, month)
는 특정 년도, 월의 정보를 Tuple로 리턴합니다.
monthrange[0]
: 월의 시작 날짜monthrange[1]
: 월의 마지막 날짜
아래와 같이 calendar를 사용하여 특정 년도, 월의 마지막 날짜를 찾을 수 있습니다.
import calendar
year = 2023
month = 9 # 9월의 마지막 날을 찾는 예제
last_day = calendar.monthrange(year, month)[1]
print(f"{year}년 {month}월의 마지막 날은 {last_day}일입니다.")
Output:
2023년 9월의 마지막 날은 30일입니다.
2. datetime을 이용한 방법
만약 9월의 마지막 날짜를 찾고 싶을 때, 10월에서 하루를 빼면, 그 날짜가 마지막 날짜가 됩니다.
이런 방법을 활용하여, 아래 예제와 같이 datetime으로 특정 월의 마지막 날짜를 찾을 수 있습니다.
datetime(year, month, 1)
: year년 month월 1일에 대한 datetime 객체 생성relativedelta.relativedelta(months=1)
: 한달을 더함next_month = datetime(year, month, 1) + relativedelta.relativedelta(months=1)
: 원하는 월의 다음 월 첫번째 날짜에 대한 datetime 객체(next_month - timedelta(days=1)).day
: next_month에서 하루를 빼고, 그 날짜를 리턴, 즉, 원하는 월의 마지막 날짜가 리턴됨
from datetime import datetime, timedelta
from dateutil import relativedelta
year = 2023
month = 9 # 9월의 마지막 날을 찾는 예제
next_month = datetime(year, month, 1) + relativedelta.relativedelta(months=1)
last_day = (next_month - timedelta(days=1)).day
print(f"{year}년 {month}월의 마지막 날은 {last_day}일입니다.")
Output:
2023년 9월의 마지막 날은 30일입니다.
3. 특정 월의 첫번째 날짜 찾기
첫번째 날짜는 항상 1이기 때문에 따로 계산할 필요가 없습니다.