現在の年が最も単純なコードを使用してPythonで指定されている場合、おそらくdatetimeモジュールを使用して1行で、次の年を印刷するにはどうすればよいですか。
質問する
65774 次
2 に答える
113
dateオブジェクトとdatetimeオブジェクトの両方にyear
、数値である属性があります。1を追加するだけです。
>>> from datetime import date
>>> print date.today().year + 1
2013
変数に現在の年がある場合は、1を直接追加するだけで、datetimeモジュールを気にする必要はありません。
>>> year = 2012
>>> print year + 1
2013
文字列に日付がある場合は、年を表す4桁を選択して、次のアドレスに渡しますint
。
>>> date = '2012-06-26'
>>> print int(date[:4]) + 1
2013
年の算術は非常に単純で、整数にして1を足すだけです。それよりもそれほど単純になることはありません。
ただし、日付全体を処理していて、同じ日付が必要であるが1年後の場合は、コンポーネントを使用しdate
て、年を1つ増やした新しいオブジェクトを作成します。
>>> today = date.today()
>>> print date(today.year + 1, today.month, today.day)
2013-06-26
または、.replace
指定したフィールドが変更されたコピーを返す関数を使用できます。
>>> print today.replace(year=today.year + 1)
2013-06-26
today
うるう年の2月29日になると、これは少し注意が必要になる可能性があることに注意してください。したがって、これを機能させるための絶対的でフェイルセーフな正しい方法は次のとおりです。
def nextyear(dt):
try:
return dt.replace(year=dt.year+1)
except ValueError:
# February 29th in a leap year
# Add 365 days instead to arrive at March 1st
return dt + timedelta(days=365)
于 2012-06-26T11:38:40.153 に答える
0
ここに別の簡単な方法があります...
import datetime
x = datetime.datetime.now()
print(x.year+1)
于 2020-07-23T02:43:50.350 に答える