如何根据经过的时间制作if语句?

时间:2017-09-28 10:56:40

标签: c++ time

我正在寻找一种方法来添加application.conf语句,如下所示,只是不确定如何操作。

if

alt将是(假设x是每次检查之间经过的时间)

if(120 seconds have passed)
{
    // do stuff
}

那么它会不断循环。 有人能告诉我这个解决方案吗?

1 个答案:

答案 0 :(得分:0)

您可以使用Boost.DateTime来完成这项工作。

以下是描述每个步骤的示例:

const boost::posix_time::ptime start = boost::posix_time::microsec_clock::local_time();
// Do stuff
const boost::posix_time::ptime end = boost::posix_time::microsec_clock::local_time();
const boost::posix_time::time_duration duration = end - start;
const boost::posix_time::time_duration remaining = boost::posix_time::seconds(120) - duration;
boost::this_thread::sleep(remaining);

可以通过这种方式简化:

const boost::posix_time::ptime start = boost::posix_time::microsec_clock::local_time();
// Do stuff
boost::this_thread::sleep(boost::posix_time::seconds(120) - boost::posix_time::microsec_clock::local_time() + start);

或通过这种方式简化:

const boost::posix_time::ptime end = boost::posix_time::microsec_clock::local_time() + boost::posix_time::seconds(120);
// Do stuff
boost::this_thread::sleep(end - boost::posix_time::microsec_clock::local_time());