Python に UTCDateTime オブジェクトがあり、今日以降かどうかを確認する必要がありますが、来年以内です。これを達成するための最良の方法は何ですか?
前もって感謝します
13ヶ月から1年に変更。
now = datetime.datetime.utcnow()
if now.month < 12:
expire_date = now.replace(year=now.year + 1, month=now.month + 1)
else:
expire_date = now.replace(year=now.year + 2, month=0)
ただし...たとえば、2月31日が存在しないため、1月31日に実行すると、これは失敗します。これらの問題を回避するために、月の依存関係に関連して追加できる条件がいくつかあります。
12か月に変更した場合(再:コメント)、うるう年についてのみ心配する必要があります。
now = datetime.datetime.utcnow()
exp_year = now.year + 1
exp_month = now.month
exp_day = now.day
if exp_month == 2 and exp_day == 29:
exp_month += 1
exp_day = 1
exp_date = now.replace(year=exp_year, month=exp_month, day=exp_day)
The dateutil
module can handle this for you... (Works same with datetime's as well)
from datetime import date
from dateutil import relativedelta
from date import date
d = date(2011, 1, 31)
delta = relativedelta.relativedelta(months=13)
d + delta
#datetime.date(2011, 2, 28)