上
问题描述:
我有下面这段代码使用time.strf()来获取当前时间,并且建筑:上
interval_time=int(input('how many seconds each interval?'))
print(time.strftime("%H:%M"))
while time.strftime("%H:%M")!=str('19:45'):
time.sleep(interval_time)
winsound.PlaySound("SystemExit",winsound.SND_ALIAS)
winsound.PlaySound("SystemEnter",winsound.SND_ALIAS)
的事情是,我知道如何获得当前时间。我希望它看起来是这样的:
while *script_first_ran_time*!=*script_first_ran_time+30minutes*
我知道如何转换分钟,但它不断重新评估目前的时间,再加上30分钟到它。我如何使初始time.strf()保持不变?
非常感谢!
答
你已经决定通过使用时间的字符串表示来使这个任务变得更加困难。由于这些字符串没有日期的概念,因此对它们执行与日期相关的操作是很麻烦的。另外,您应该使用专门设计用于处理日期和时间的专用库,即datetime
。
样板代码应该是这样的:
这里,datetime.now
返回表示当前时间的特殊对象。 timedelta
返回特殊对象,当从datetime
实例添加或减去时,返回另一个datetime
,根据timedelta
的状态在时间上移位。
另外注意,我从不等于到更大的改变你的条件比 - 它会停止处理,即使你不会准确击中你的时间点(和毫秒级,你会必须非常幸运才能达到这个目标)。
如果你是羽绒球投票,请解释为什么 – Tak