实现闹钟的好方法

时间:2017-05-13 15:20:55

标签: c++

这可能是非常概念性的,但我完全没有关于这个主题的想法。仅供参考我在Arduino(C / C ++)编码。

我想知道实现警报触发器的最佳方法是什么。

我现在的方式是将时间转换为秒,并将闹钟时间转换为秒。当前时间大于或等于闹钟时间时,触发警报。

这很好用。想象一下,我将当前时间设置为凌晨1点(3600秒),闹钟时间设置为凌晨2点(7200秒)。当总秒数等于7200时,将触发警报。

但是,我的问题是,如果当前时间设置在午夜之前,闹钟时间设置在午夜之后,则会立即触发警报。

的确,想象一下我将当前时间设置为晚上10点(约70000秒),闹钟时间设置为00:00:01(1秒)。当前时间将大于闹钟时间,并将立即触发。

关于如何解决这个问题的任何想法都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

在设置问题时,您不应该检查一个值是否大于另一个值,但是如果运行时间超过了警报。 所以假设警报在a点。 时间已经到了,现在是时候了。 我们要检查的是a是否介于t_old和t之间。 这似乎很容易说,但更难做到。

无论如何,从所有值t_old中减去t_old = 0 a-t_old和t-t_old。因此,如果a-t_old是<那么使用有符号算术t-t_old这是你的情况(检查它,如果我有任何错误通知我)。