1ヶ月後の日付を取りたい
datetime.datetime(2008, 12, 1) + datetime.timedelta(months=1)
これだとエラーになる。 daysはあるのに、monthsというパラメータが取れないからだ。
[Python] 月の加減算処理ができない? | それなりブログ
これを見た。
from dateutil.relativedelta import relativedelta
これを使えばできるようだが、インストールが必要なのか出来ないこともある。
endo blog: Pythonで時間関連の関数の勉強(datetime) これを見ると、1ヶ月前の計算だが、
i = today - datetime.timedelta(days=30)
と単純に30日で引いてる・・・。 これだと、2/28の1ヶ月前に1月28日になるのか、1月31日になるのかわからないのでは?
# 3月29日を作り、 march = datetime.datetime(2011,3,30) # 30日前? march - datetime.timedelta(days=30)
結果は、月末の2月28日ではなく27日
datetime.datetime(2011, 2, 27, 0, 0)
では、逆に1か月後
# 2月28日を作り、 feb = datetime.datetime(2011,2,28) # 30日後? feb + datetime.timedelta(days=30)
結果は、
datetime.datetime(2011, 3, 30, 0, 0)
普通に30日足してるだけか・・・。 3月1日だと4月1日ではなく3月31日になるし・・・。却下!