减少python中的天数

时间:2014-12-11 07:08:59

标签: python datetime timedelta

Year = eval(input("Year:"))

import time
import datetime
from datetime import datetime.timedelta
t1 = datetime.datetime(Year,12,31).strftime("%m%d.%w")
t2 = datetime.datetime(Year,12,31).strftime("%j")
t3 = datetime.datetime(Year,12,31).strftime("%d")
t4 = timedelta(days=-1)
t5 = t1 - t4

我不擅长英语。 我希望减少日期,任何年份第一个都是1231。 如何通过“for loop”减少天数,第一个输出为1231,第二个输出为1230,第三个输出为1229 .....直到0101?

我真的不明白“timedelta”和“datetime”的含义。但是我无法理解python官方网站上的网页信息。

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

>>> import datetime
>>> def back_in_the_past(start_year):
...     start_date = datetime.datetime(start_year, 12, 31)
...     for i in range(0, 5):
...       new_date = start_date - datetime.timedelta(i)
...       print(new_date.strftime("%Y-%m-%d"))
... 
>>> back_in_the_past(2014)
2014-12-31
2014-12-30
2014-12-29
2014-12-28
2014-12-27

你只需要改变“我在范围内(0,5):”以及时更长时间。

datetime.timedelta(i)及时应用翻译 - 第一个参数以天为单位,因此“i”以天为单位。

答案 1 :(得分:0)

你的意思是这样吗?

import datetime

Year = 2014

begin = datetime.date(Year,01,01)
end = datetime.date(Year,12,31)

for d in range((end - begin).days + 1):
    print(end - datetime.timedelta(days=d))

或者我误解了你的问题?