我需要一个程序的帮助.
如果用户可以控制日期,如何在任何给定日期添加3周(21天)?
用户将输入日期YYYY-MM-DD.
下面我试图找到连字符,并确保只有2.这是我到目前为止,但它所做的只是重复,有人能告诉我我哪里出错了吗?:
date = raw_input("Enter date: ")
i = 0
while i <= len(date):
if date[i] != "-":
i = i + 1
print date
Run Code Online (Sandbox Code Playgroud)
现在我正在挑选年,月,日.有没有更简单的方法来做到这一点,因为我需要考虑更改月份等?
year = date[0:4]
month = date[5:7]
day = date[9:11]
Run Code Online (Sandbox Code Playgroud)
谢谢
Sen*_*ran 53
使用datetime模块执行任务.您创建一个日期时间感知对象并添加21天timedelta对象.
>>> 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
Run Code Online (Sandbox Code Playgroud)
您可以使用datetime.timedelta对象表示3周,然后将其添加到表示用户输入的datetime对象.
import datetime
date = raw_input("Enter date: ")
aDate = datetime.datetime.strptime(date,"%Y-%m-%d")
threeWeeks = datetime.timedelta(weeks = 3)
print aDate + threeWeeks
Run Code Online (Sandbox Code Playgroud)
有关使用strptime方法的详细信息,请参阅http://docs.python.org/library/datetime.html#strftime-and-strptime-behavior.
试试这个,我确信这是最短、最简单的方法
from dateutil.relativedelta import relativedelta
period = date.today() + relativedelta(weeks=+1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29892 次 |
| 最近记录: |