Pythonで月末日を取得する方法について説明します。Pythonの標準ライブラリには、特定の月の最終日を簡単に(つまり、一つの関数呼び出しで)決定する方法があります。
calendarモジュールを使用する方法
Pythonのcalendar
モジュールのmonthrange
関数を使用すると、指定した年と月の最初の日の曜日とその月の日数を取得できます。
import calendar
# 2002年1月の例
print(calendar.monthrange(2002, 1)) # 出力: (1, 31)
# うるう年(2008年2月)の例
print(calendar.monthrange(2008, 2)) # 出力: (4, 29)
# 100で割り切れて400で割り切れない年(2100年2月)はうるう年ではない
print(calendar.monthrange(2100, 2)) # 出力: (0, 28)
このように、calendar.monthrange(year, month)[1]
を使用すると、最もシンプルに月末日を取得できます。
datetimeモジュールを使用する方法
calendar
モジュールをインポートしたくない場合は、datetime
モジュールのreplace
メソッドとtimedelta
メソッドを組み合わせて使用することもできます。
import datetime
def last_day_of_month(any_day):
# 28日は全ての月に存在します。4日後は必ず次の月です
next_month = any_day.replace(day=28) + datetime.timedelta(days=4)
# 現在の日数を引くと一ヶ月前に戻ります
return next_month - datetime.timedelta(days=next_month.day)
# 2022年の各月の最終日を出力
for month in range(1, 13):
print(last_day_of_month(datetime.date(2022, month, 1)))
このコードは、指定した日付の月の最終日を返します。
以上、Pythonで月末日を取得する方法について説明しました。これらの方法を活用して、日付処理を効率的に行いましょう。