【问题标题】:Print something if the date changes如果日期发生变化,打印一些东西
【发布时间】:2021-01-22 01:54:17
【问题描述】:

我在这里真正想做的是,当明天到来 (00:00) 时,它应该打印 Yes

import datetime
from datetime import date

r = True
rr = True
while r:
    Today_Date = date.today()
    while rr:
        Tomorrow_Date = datetime.date.today() + datetime.timedelta(days=1)
        if Today_Date == Tomorrow_Date:
            print("Yes")

【问题讨论】:

  • ...出了什么问题?据我所知,您应该首先将Tomorrow_Date = ... 行移到while 循环前面。您不会希望每毫秒重新计算一次Tomorrow_Date,因为您永远不会以这种方式到达它。

标签: python python-3.x date


【解决方案1】:

按照您现在的方式,您的 rr while 循环将不断运行并更新Tomorrow_Date,当这一天结束时,它会在有机会与Today_Date 进行比较之前更新。您应该在该循环之外同时设置 Today_DateTomorrow_Date,并且仅在日期更改时更新它们。

这应该可以解决问题:

如果您出于其他原因想要两个循环:

import datetime

r = True
while r:
  rr = True
    Tomorrow_Date = datetime.date.today() + datetime.timedelta(days=1)
    while rr:
        if datetime.date.today() >= Tomorrow_Date:
            print("Yes")
            rr = False

或作为单个循环:

import datetime

r = True
Tomorrow_Date = datetime.date.today() + datetime.timedelta(days=1)
while r:
    if datetime.date.today() >= Tomorrow_Date:
        print("Yes")
        Tomorrow_Date = datetime.date.today() + datetime.timedelta(days=1)

添加 time.sleep() 以减慢循环速度可能是个好主意,具体取决于您需要的准确度。

【讨论】:

  • 如果不想等到半夜测试这个,可以换成datetime.datetime.today()datetime.timedelta(seconds=X)
  • 是的,我只是将时间从 Windows 设置更改为 23:59
猜你喜欢
  • 1970-01-01
  • 2015-10-14
  • 2021-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多