如何使用 for 循环并每次添加一天(时间增量)



这是我的代码:

import datetime
date = datetime.date(2015,10,1)
today = datetime..today()
oneday = datetime.timedelta(days = 1)
date_counter = 0
while not date == today:
    date_counter+=1
    date += oneday

在此代码中,我使用 while 循环来实现我的目标 - 计算今天和用户选择的特定日期之间的天数。

但是,我想使用 for loop 来做同样的事情。它可以重写吗?

减去

date s 得出timedelta

import datetime
date = datetime.date(2015,10,1)
today = datetime.date.today()
date_counter = (today - date).days

但是,如果您确实想使用 for 循环,则可以这样做:

导入日期时间

date = datetime.date(2015,10,1)
today = datetime.date.today()
one_day = datetime.timedelta(days=1)
date_counter = 0
def gen_dates(some_date):
    while some_date != today:
        some_date += one_day
        yield some_date
for d in gen_dates(date):
    date_counter += 1
    print(date_counter, ':', d)

不建议使用您正在使用的方法。更好的方法是首先不使用循环。您可以改为尝试以下代码:

import datetime
date = datetime.date(2015,10,1)
today = datetime..today()
oneday = datetime.timedelta(days = 1)
date_counter = (today - date).days

回答您关于使用 for 循环的可能性的问题。我会说一个很大的不。希望这有帮助。

以下代码仅在您要在此范围内的每一天执行某些操作时才有意义。

import datetime
date = datetime.date(2016,2,1)
today = datetime.date.today()
oneday = datetime.timedelta(days = 1)
date_counter = 0
for days in range(0, (today - date).days):
     date_counter += 1
     date += oneday

如果您只需要天数,则可以使用它

date_counter = (today - date).days

这也可以使用

import datetime
date = datetime.date(2015,10,1)
today = datetime.date.today()
oneday = datetime.timedelta(days = 1)
date_counter = 0
l = [1]
for i in l:
    if not date == today:
        date_counter+=1
        date += oneday
        l.append(1)
print date_counter
from datetime import date
d0 = date(2015,10,1)
d1 = datetime..today()
delta =  d1 - d0
print delta.days

您可以使用标准函数轻松计算日期差异。

(today - date).days

最新更新