Python计数开始日期+天

时间:2017-09-22 16:46:23

标签: python date datetime

我正在制作一个程序,我将开始日期输入dataStart(示例21.10.2000),然后输入intdateEnd并将其转换为另一个日期(示例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)

3 个答案:

答案 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

如果您有任何疑问,请查看文档python3 / python2

答案 2 :(得分:0)

您可以使用datetime.timedeltadatetime对象添加特定的时间单位。

请参阅此处的答案,了解代码段: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)