我似乎无法弄清楚我做错了什么。对python来说很新,所以可能会犯一些无知的错误
我试图在间隔后打印一个语句。范围是用户能够以设定的时间间隔打印通知。现在我把它们硬编码
以下是我的代码的样子
from datetime import datetime
def main():
initial_time = datetime.now().replace(hour = 0, minute = 0, second = 0, microsecond = 0)
class add_tm(object): #dynamic time adjustment
x = 0 ## This will be a user input
y = 1 ## This will be a user input
z = 5 ## This will be a user input
while True:
now = datetime.now()
if now > initial_time:
print("Hello world")
initial_time = now.replace(hour = now.hour + add_tm.x, minute = now.minute + add_tm.y, second = now.second + add_tm.z, microsecond = 0)
main()
问题是程序在第5次循环后停止执行。当它到达6号时,我得到了一个声明 initial_time = now.replace(hour = now.hour + add_tm.x,minute = now.minute + add_tm.y,second = now.second + add_tm.z,microsecond = 0) ValueError:分钟必须在0..59
我无法理解为什么我会这样做。我的意思是我有点得到它的意思,但不知道是什么导致它说
答案 0 :(得分:5)
minute = now.minute + add_tm.y
显然导致值小于零或大于59
它不知道如何处理0到59范围之外的分钟值
试
print(now.minute + add_tm.y)
查看打破它的值