Use*_*ser 1 c++ windows time timer
我有一个MFC应用程序,我希望在指定的时间调用某个方法.我将通过使用tm结构的向量来指定时间,该结构具有小时分钟和第二个填充.可能我可能需要每次都存储一个布尔值,以指示是否在指定时间调用该方法.我有一个每隔50ms就会关闭的计时器.
在MFC中,不保证时间以指定的间隔熄灭.我想确保即使关闭几秒钟也会调用该方法.我的应用程序目前不需要精确的计时(尽管如果有一个简单的解决方案,我会对它开放).我目前关于如何做到这一点的想法是允许一些滑点,以便我允许时间等于+/-几秒钟.这似乎是实现这一目标的合理方式吗?
我想检查在一定的公差秒内两次是否相等.在c ++中,最好的方法是什么?我可以访问CTime对象和/或struct tm对象(以及可能的其他窗口时间数据结构)
UPDATE
我想在秒数接近分钟或小时边界的情况下实际上增加了复杂性.我不能只比较秒.
你需要使用mktime来获得一个time_t
. time_t
通常是自1970年初以来的秒数,所以你不必担心2:10:59 vs 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
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1977 次 |
最近记录: |