Python:向任意d添加3周

2024-05-15 21:11:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一个程序的帮助。
当用户可以控制日期时,如何在任何给定日期上添加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

现在我选择年,月,日。有没有一个更简单的方法来做这件事,因为我需要解释的变化月等?

year = date[0:4]
month = date[5:7]
day = date[9:11]

谢谢


Tags: 用户程序inputdaterawlenif字符
3条回答

您可以使用datetime.strptime从用户处获取输入作为日期

from datetime import datetime
i = str(raw_input('date'))
try:
    dt_start = datetime.strptime(i, '%Y, %m, %d')
except ValueError:
    print "Incorrect format"

再加上3周(21天)

dt_start = dt_start + datetime.timedelta(days=21)

给你

可以使用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

有关使用strtime方法的详细信息,请参见http://docs.python.org/library/datetime.html#strftime-and-strptime-behavior

对任务使用datetime模块。您可以创建一个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

相关问题 更多 >