Python:给任意日期增加3周
我需要帮助写一个程序。
我想知道怎么在用户输入的日期上加上3周(也就是21天)?
用户会输入日期,格式是YYYY-MM-DD。
下面我在尝试找到日期中的连字符,并确保只有两个连字符。但我现在的代码只是重复自己,能告诉我哪里出错了吗?:
date = raw_input("Enter date: ")
i = 0
while i <= len(date):
if date[i] != "-":
i = i + 1
print date
现在我在提取年份、月份和日期。有没有更简单的方法来做到这一点,因为我还需要考虑到月份的变化等等?
year = date[0:4]
month = date[5:7]
day = date[9:11]
谢谢
4 个回答
5
试试这个,我相信这是最简单快捷的方法。
from dateutil.relativedelta import relativedelta
period = date.today() + relativedelta(weeks=+1)
17
你可以用一个叫做datetime.timedelta的东西来表示3周,然后把它加到表示用户输入的那个日期时间对象上。
import datetime
date = raw_input("Enter date: ")
aDate = datetime.datetime.strptime(date,"%Y-%m-%d")
threeWeeks = datetime.timedelta(weeks = 3)
print aDate + threeWeeks
想了解更多关于使用strptime方法的细节,可以查看这个链接:http://docs.python.org/library/datetime.html#strftime-and-strptime-behavior。
81
使用 datetime 模块来完成这个任务。你需要创建一个带有日期和时间的对象,然后在这个对象上加上一个21天的时间差对象。
>>> import datetime
>>> u = datetime.datetime.strptime("2011-01-01","%Y-%m-%d")
>>> d = datetime.timedelta(days=21)
>>> t = u + d
>>> print(t)
2011-01-22 00:00:00