提升time_duration总秒数计算

时间:2014-01-09 08:14:08

标签: c++ boost

我想计算boost::posix_time:ptime中两个时间戳之间的时间差。但是,由于时间戳包含最多微秒,因此结果可能不是我所期望的。

boost::posix_time::time_period oPeriod(start, end);
int32_t iDuration = oPeriod.length().total_seconds();

printf("AAAA [%s], [%s], [%d]\n", boost::posix_time::to_iso_string(start).c_str(), boost::posix_time::to_iso_string(end).c_str(), iDuration);

输出:

AAAA [20131030T232150.619049], [20131030T232152.558225], [1]

我想要的是截断秒的分数然后计算差异。所以上面的结果应该是2而不是1。

有办法吗?

1 个答案:

答案 0 :(得分:0)

据我所知,没有简单的路线,在进行减法之前,您必须从fractional_seconds()start移除end,即

start -= start.fractional_seconds();
end -= end.fractional_seconds();
auto diff = end - start;

(注意:我假设startendtime_duration,如果它们是ptime,那么您必须从{{1}}获取时间他们先......)