Mar*_*ers 105
date和datetime对象都有一个year属性,这是一个数字.只需添加1:
>>> from datetime import date
>>> print date.today().year + 1
2013
Run Code Online (Sandbox Code Playgroud)
如果你有一个变量的当前年份,只需直接添加1,不需要打扰日期时间模块:
>>> year = 2012
>>> print year + 1
2013
Run Code Online (Sandbox Code Playgroud)
如果您在字符串中有日期,只需选择代表年份的4位数并将其传递给int:
>>> date = '2012-06-26'
>>> print int(date[:4]) + 1
2013
Run Code Online (Sandbox Code Playgroud)
年算术非常简单,使它成为一个整数,只需加1.它没有那么简单.
但是,如果您正在使用整个日期,并且需要相同的日期但一年之后,请使用组件创建一个date年份加1 的新对象:
>>> today = date.today()
>>> print date(today.year + 1, today.month, today.day)
2013-06-26
Run Code Online (Sandbox Code Playgroud)
或者您可以使用该.replace函数,该函数返回您指定的字段已更改的副本:
>>> print today.replace(year=today.year + 1)
2013-06-26
Run Code Online (Sandbox Code Playgroud)
请注意,这可能会在today2月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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57008 次 |
| 最近记录: |