在while状态下比较两个日期时程序空闲

2024-09-22 16:32:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我不知道如何正确地描述我的问题,但当我比较while语句中的两个datetime对象时,整个程序停止工作。 我有一个方法work()

import time
import datetime
def work():
    now = None
    intr = 10.0
    d = datetime.datetime.utcnow()
    least_time = datetime.datetime.combine(datetime.datetime.today(), datetime.time(10, 10, 00))
    finish = datetime.datetime.combine(datetime.datetime.today(), datetime.time(10, 10, 20))
    if datetime.datetime.today().weekday() == 0:
        least_time = datetime.datetime.combine(datetime.datetime.today(), datetime.time(11,10,00))
        finish = datetime.datetime.combine(datetime.datetime.today(), datetime.time(11,10,20))
    while d <= finish:
        d = datetime.datetime.utcnow()
        if intr > 1 and d >= least_time:
            intr = 1
            print("Interval set to 1 sec")
        if now == None:
            now = time.time()
        if time.time() - now >= intr:  
            print("Work")
            print("_____")        
            now = None
    print("End")

如果我在该方法之前调用print()或其他东西:

print("1")
print("2")
print("3")
work()

程序只是空闲,什么也不做


Tags: 方法程序nonetodaydatetimeiftimenow
1条回答
网友
1楼 · 发布于 2024-09-22 16:32:47

发生什么取决于您当前的时区。 对datetime.datetime.utcnow()的调用以UTC表示日期时间, 鉴于datetime.datetime.today()为您的时区(您的计算机有)提供当前日期时间:

更改:

d = datetime.datetime.utcnow()

致:

d = datetime.datetime.now()

或:

d = datetime.datetime.today()

会解决你的问题

相关问题 更多 >