43

現在の年が最も単純なコードを使用してPythonで指定されている場合、おそらくdatetimeモジュールを使用して1行で、次の年を印刷するにはどうすればよいですか。

4

2 に答える 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 に答える