seconds()
方法应从main
方法调用,并应打印00:00:00 January 1, 1901 GMT
的格式,并应返回(计算)用户输入时间之前经过的秒数,我是新用户C ++方面,我做了很多尝试,但未能实现
我尝试的代码:
// here i tried to start the day from the mentioned date and time
boost::posix_time::ptime timeObj = boost::posix_time::time_from_string("1901/01/01 00:00:00");
// Get current system time
boost::posix_time::ptime timeLocal = boost::posix_time::second_clock::local_time();
boost::posix_time::time_duration durObj = timeLocal.time_of_day();
std::cout << "Seconds : = " << timeLocal.time_of_day().seconds() << std::endl;
在此之后
00:00:00 January 1, 1901 GMT
到用户输入时间,我需要相差几秒钟。00:00:00 January 1, 1901 GMT
的格式。之所以这样做,是因为我正在为自己的产品自定义此Boost库。
答案 0 :(得分:0)
请勿使用time_of_day(因为它提供了一天中的时间)。
不用秒,而是用total_seconds。
使用ptime算法获得差值。其余的很好。
#include <boost/date_time/posix_time/posix_time.hpp>
size_t foo() {
boost::posix_time::ptime epoch { { 1901, 1, 1 } };
auto diff = boost::posix_time::second_clock::local_time() - epoch;
return diff.total_seconds();
}
int main() {
std::cout << foo() << "\n";
}
打印的:
3710416481
应该让您确定我的平均打字速度和本地时区:)