読者です 読者をやめる 読者になる 読者になる

Python で月末の日付を取得する方法

python

Python で、指定した月の月末の日付を date オブジェクトで取得する必要があって、実装してみたのでメモしておきます。

from datetime import date
from calendar import monthrange

def get_last_date(year, month):
    # monthrange は月の1日の曜日と日数を返してくれる
    # 日数を date に渡せば月末の日付のできあがり
    youbi, day = monthrange(year, month)
    last = date(year, month, day)
    return last

first = date(2010, 12, 1) # 月初は 1 を渡せばいい
last = get_last_date(2010, 12)
print(first) #=> 2010-12-01
print(last)  #=> 2010-12-31

ちなみに C# だったらもっと楽に書けるのに。

// 翌月の1日の前日は、今月の月末
var last = new DatTime(2010, 12, 1).AddMonths(1).AddDays(-1);

月末の日付が必要になるケースって結構あるから、標準ライブラリにユーティリティ関数として用意して欲しいところです。月単位や年単位で日付を操作するための関数も。

私が見落としているだけで、もしかしてあったりする?