gpt4 book ai didi

C++::Boost::posix_time(经过的秒数。经过的小数秒)

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:12:36 30 4
gpt4 key购买 nike

我正在尝试对两个起初看起来并不难的问题给出答案。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;
}
}

最佳答案

您正在使用 second_clock 获取当前时间。顾名思义,它只精确到最接近的秒数。由于您的引用时间没有小数秒,因此持续时间小数秒始终为 0。改用 microsec_clock:

ptime Now = microsec_clock::universal_time();

此外,在如此紧密的循环中,我不希望时钟在每次迭代时都更新,因此您可能还想从 boost::thread 添加一个 sleep :

boost::this_thread::sleep(boost::posix_time::milliseconds(25));

关于C++::Boost::posix_time(经过的秒数。经过的小数秒),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/922829/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com