4 c++
我试图找到两个一开始看起来并不难的问题的答案.Q1:如何获取UTC.Now()和给定日期之间经过的秒数?A1:就像下面的代码一样!Q2:如何确定自上一次"完整"秒后经过的小数秒数?我想打印"total_elapsed_seconds.fractional_seconds" - >"1234124.45".我怎么做?A2 : ???
#include <iostream>
#include <boost/date_time/gregorian/gregorian.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
using namespace std;
using namespace boost::gregorian;
using namespace boost::posix_time;
void main()
{
ptime Jan1st1970(date(1970, 1, 1));
for(int i = 0; i < 10; i++)
{
ptime Now = second_clock::universal_time();
time_duration diff = Now - Jan1st1970;
cout << Now << " : " << diff.total_seconds() << "." << diff.fractional_seconds() << endl;
}
}
Run Code Online (Sandbox Code Playgroud)
您正在使用它second_clock来获取当前时间.顾名思义,它仅精确到最接近的秒.由于您的参考时间没有小数秒,因此持续时间小数秒始终为0.使用microsec_clock相反:
ptime Now = microsec_clock::universal_time();
Run Code Online (Sandbox Code Playgroud)
此外,在这样一个紧凑的循环中,我不希望时钟在每次迭代时更新,所以你可能还想从boost :: thread添加一个sleep:
boost::this_thread::sleep(boost::posix_time::milliseconds(25));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11379 次 |
| 最近记录: |