检查time_t是否在其他time_t之间,并且有一些误差

Ale*_*lex 3 c++ time-t

我有两个time_t变量:timeA和timeB.

我想要做的是检查timeA是否与timeB相同.但是,我知道在某些情况下它们不会完全相同,并且两者之间可能存在1或2秒的差异,所以我真正想要检查的是:

    if (timeB - 2sec) <= timeA <= (timeB + 2sec)
Run Code Online (Sandbox Code Playgroud)

有可能这样做吗?

我想一个选项不是使用time_t而是将timeB保持为tm结构,并且在比较之前,减去两秒并创建time_t timeBminus然后添加四秒并创建time_t timeBplus.问题是我将比较几百万个时间A - 时间B对,并希望尽可能简单快速地保持它.

我该怎么做?

jco*_*der 8

就像是 -

if (std::fabs(std::difftime(timeA, timeB)) < 2.0) 
Run Code Online (Sandbox Code Playgroud)

(不能从这里检查确切的类型等,但我认为这个想法是正确的)

  • +1,虽然我会使用`std :: abs`的`double`重载而不是C风格的'fabs`. (2认同)