比较两次在宽容内的平等吗?

我有一个MFC应用程序,我想在特定的时间调用某个方法。 我将通过使用具有小时分钟和秒钟填充的tm结构向量来指定时间。 可能我可能需要为每次存储一个布尔值来指示方法是否在指定的时间被调用。 我有一个计时器每隔50ms就closures一次。

在MFC中,时间不能保证以指定的时间间隔closures。 我想要确保即使closures几秒钟也会调用该方法。 我的应用程序目前不需要精确的时间(虽然如果有一个简单的解决scheme,我会打开它)。 我目前如何做到这一点,是考虑到一些滑动,让我的时间是相等的+/-几秒钟。 这似乎是一个合理的方式来实现这一目标?

我想检查两次在一定的容忍度内是否相等。 在c ++中最好的方法是什么? 我可以访问CTime对象和/或struct tm对象(以及潜在的其他Windows时间数据结构)

UPDATE

我猜在秒数接近分钟或小时边界的情况下实际上增加了复杂性。 我不能只比较秒。

你需要使用mktime来获得time_ttime_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 }