如何将基于提升的计时器转换为基于 Unix 的(提升date_time免费)类

How to translate a boost based timer into Unix based (boost date_time free) class?

本文关键字:date 提升 time 免费 于提升 计时器 转换 Unix      更新时间:2023-10-16

所以我是Unix的新手,不知道它的API。我想知道Unix上的镜像API是什么?

#include <boost/date_time.hpp>
class timer
{
public:
        timer();
        void restart();
        boost::posix_time::time_duration elapsed() const;
private:
        boost::posix_time::ptime start_time;
};
// and cpp looks like
#include "timer.h"
timer::timer() : start_time(boost::posix_time::microsec_clock::local_time()) { }
void timer::restart()
{
        start_time = boost::posix_time::microsec_clock::local_time();
}
boost::posix_time::time_duration timer::elapsed() const
{
        return boost::posix_time::microsec_clock::local_time() - start_time;
}

那么如何使用Unix api在我的简单类中删除boost使用呢?

Unix 时间是从纪元(1970-01-01T00:00:00Z)经过的秒数,你已经知道其余的:

using boost::posix_time;
ptime unixEpoch( 1970, 1, 1 );
time_t t = (time_t) (microsec_clock::local_time() - unixEpoch).total_seconds()