如何检测系统时间的小时变化

时间:2017-06-14 09:36:10

标签: python

我正在尝试用Python创建一个每小时发出一声哔哔声的程序。并且没有哔哔声应该等于小时数。比如12点钟应该发出12次哔声。

但我不知道如何检测小时变化。

def bep(h):
    for i in range(h):
        winsound.Beep(2000,800)
        sleep(2)

上面的代码发出的声音为h次,并且

def hour():
    return hour=int(time.ctime(time.time()).split()[3].split(':')[0])

它给出了小时。 但是如何检测那个小时已经改变了。

我是否应该检查每个常规时间间隔并使用前一个小时和当前时间来检测更改?我认为这个想法没有效果。因为间隔时间的时间延迟,即 每5秒检查一次当前时间并比较两次连续检查以检测小时变化。 是否有任何方法可以直接完成它。

1 个答案:

答案 0 :(得分:0)

最简单的方法:

import datetime
import time
current = 0
while True:
    time.sleep(5)
    if datetime.datetime.now().hour != current:
        current = datetime.datetime.now().hour
        print "beep" , str(current)

请注意,您可以使用.minute而不是.hour来测试代码。这样可以让您查看它是否适合您的目的。
您必须通过调用函数print "beep", str(current)

来替换bep(current)

此外,您可能需要考虑在bep(h)功能中添加一些额外的代码。

if h>12: h=h-12
if h == 0: h = 12

为了确保例如:在16:00你只能听到4次哔声而不是16次,而在午夜,你会听到12声嘟嘟声,而不是没有声音。