\

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で月末日を取得する方法について説明しました。これらの方法を活用して、日付処理を効率的に行いましょう。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です