如果使用最简单的代码在 python 中给出当前年份,我如何打印下一年,可能使用 datetime 模块在一行中。
问问题
65774 次
2 回答
113
日期和日期时间对象都有一个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。没有比这更简单的了。
但是,如果您使用的是整个日期,并且您需要相同的日期但一年后,请使用组件创建一个新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 回答