Python: добавление 3 недель к любой дате
Мне нужна помощь с программой.
Как добавить 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]
спасибо
Ответы
Ответ 1
Используйте 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
Ответ 2
Вы можете использовать объект 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
Подробнее об использовании метода strptime см. http://docs.python.org/library/datetime.html#strftime-and-strptime-behavior.
Ответ 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)
Там вы идете