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

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

date和date时间对象都有一个year属性,这是一个数字。 只需加1:

 >>> from datetime import date >>> print date.today().year + 1 2013 

如果你在variables中有当前年份,只需直接加1,不需要打扰date时间模块:

 >>> year = 2012 >>> print year + 1 2013 

如果你有一个string的date,只需select代表年份的4位数字并将其传递给int

 >>> date = '2012-06-26' >>> print int(date[:4]) + 1 2013 

年算术是非常简单的,使它成为一个整数,只是加1。它并没有比这更简单。

但是,如果您使用的是完整的date,并且需要一年之后的相同date,则使用这些组件创build一个新的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)