我有一个 MFC 应用程序,我希望在指定时间调用某个方法。我将使用填充了小时、分钟和秒的 tm 结构 vector 来指定时间。可能我可能需要为每次存储一个 bool 值以指示该方法是否在指定时间被调用。我有一个每 50 毫秒关闭一次的计时器。
在 MFC 中,时间不能保证在指定的时间间隔内关闭。我想确保即使关闭几秒钟也能调用该方法。我的应用程序目前不需要精确计时(尽管如果有简单的解决方案,我愿意接受)。我目前关于如何做到这一点的想法是允许一些滑动,这样我就可以让时间等于 +/- 几秒。这看起来是实现这一目标的合理方法吗?
我想在一定的秒数公差内检查两次是否相等。在 C++ 中最好的方法是什么?我有权访问 CTime 对象和/或 struct tm 对象(以及可能的其他窗口时间数据结构)
更新
我想在秒数接近分钟或小时边界的情况下实际上会增加复杂性。我不能只比较秒数。
最佳答案
您需要使用 mktime获取 time_t
。 time_t
通常是自 1970 年初以来的秒数,因此您无需担心 2:10:59 与 2:11:01。
struct tm expected_tm;
struct tm actual_tm;
// set those tms to something
time_t expected_time = mktime( &expected_tm );
time_t actual_time = mktime( &actual_tm );
if ( abs( expected_time - actual_time ) < 5 ) // for 5s tolerance
{
// GOOD
}
else
{
// BAD
}
关于c++ - 在公差范围内比较两次是否相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7641801/