我正在制作一个程序,我将开始日期输入dataStart
(示例21.10.2000),然后输入int
天dateEnd
并将其转换为另一个日期(示例3000 = 0008-02-20)...现在我需要一起计算这些日期,但我没有管理自己如何做到这一点。这是我的代码。
from datetime import date
start=str(input("type start date (DD.MM.YYYY)"))
end=int(input("how many days from it?"))
dataStart=start.split(".")
days=int(dataStart[0])
months=int(dataStart[1])
years=int(dataStart[2])
endYears=0
endMonths=0
endDays=0
dateStart = date(years, months, days)
while end>=365:
end-=365
endYears+=1
else:
while end>=30:
end-=30
endMonths+=1
else:
while end>=1:
end-=1
endDays+=1
dateEnd = date(endYears, endMonths, endDays)
答案 0 :(得分:0)
要将日期添加到日期,您需要使用datetime.timedelta
start=str(input("type start date (DD.MM.YYYY)"))
end=int(input("how many days from it?"))
date = datetime.strptime(start, "%d.%m.%Y")
modified_date = date + timedelta(days=end)
print(datetime.strftime(modified_date, "%d.%m.%Y"))
答案 1 :(得分:0)
使用datetime.datetime.strptime
转换为日期时间会更容易,而关于添加天数的部分则只需使用datetime.timedelta
。
下面是一个关于如何使用它的小片段:
import datetime
start = "21.10.2000"
end = 8
dateStart = datetime.datetime.strptime(start, "%d.%m.%Y")
dateEnd = dateStart + datetime.timedelta(days=end)
dateEnd.date() # to get the date format of the endDate
答案 2 :(得分:0)
您可以使用datetime.timedelta
向datetime
对象添加特定的时间单位。
请参阅此处的答案,了解代码段:Adding 5 days to a date in Python
或者,您可能希望使用第三方dateutil库,如果您需要支持以大于周的单位添加时间。例如:
>>> from datetime import datetime
>>> from dateutil import relativedelta
>>> one_month_later = datetime(2017, 5, 1) + relativedelta.relativedelta(months=1)
>>> one_month_later
>>> datetime.datetime(2017, 6, 1, 0, 0)