如何从今年开始在Python中打印明年

时间:2012-06-26 11:37:09

标签: python datetime

如果使用最简单的代码在python中给出当前年份,可以使用datetime模块在一行中打印下一年。

2 个答案:

答案 0 :(得分:105)

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.它没有那么简单。

但是,如果您使用的是整个日期,并且需要相同的日期,但一年之后,请使用组件创建一个新的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)

答案 1 :(得分:0)

这是另一种简单的方法...

import datetime

x = datetime.datetime.now()

print(x.year+1)