C++11 std::chrono,将持续时间添加到时间点
我试图在Qt(C++11/MinGW)中为时间点添加一些持续时间,但遇到了以下问题: 初始化(程序启动时): 某些活动脱机:C++11 std::chrono,将持续时间添加到时间点,c++11,duration,chrono,system-clock,C++11,Duration,Chrono,System Clock,我试图在Qt(C++11/MinGW)中为时间点添加一些持续时间,但遇到了以下问题: 初始化(程序启动时): 某些活动脱机: offline_mark_time = std::chrono::system_clock::now(); 活动恢复后,我需要将脱机时间添加到开始时间: auto now = std::chrono::system_clock::now(); program_start_time += (now - offline_mark_time); // <- Doe
offline_mark_time = std::chrono::system_clock::now();
活动恢复后,我需要将脱机时间添加到开始时间:
auto now = std::chrono::system_clock::now();
program_start_time += (now - offline_mark_time); // <- Does not seem to work
auto now=std::chrono::system_clock::now();
程序_开始_时间+=(现在-脱机_标记_时间);// 此完整程序基于您答案中的代码片段:
#include <iostream>
#include <thread>
#include <chrono>
int
main()
{
auto program_start_time = std::chrono::system_clock::now();
auto copy_of_program_start_time = program_start_time;
auto offline_mark_time = std::chrono::system_clock::now();
std::this_thread::sleep_for(std::chrono::microseconds(100));
auto now = std::chrono::system_clock::now();
program_start_time += (now - offline_mark_time);
std::cout << (program_start_time > copy_of_program_start_time) << '\n';
}
如果构建离线标记时间
和现在
之间的持续时间小于系统时钟::持续时间
的精度(我为1微秒),然后now
和offline\u mark\u time
很可能相等,因此在这种情况下,0将添加到program\u start\u time
。此完整程序基于您答案中的代码片段:
#include <iostream>
#include <thread>
#include <chrono>
int
main()
{
auto program_start_time = std::chrono::system_clock::now();
auto copy_of_program_start_time = program_start_time;
auto offline_mark_time = std::chrono::system_clock::now();
std::this_thread::sleep_for(std::chrono::microseconds(100));
auto now = std::chrono::system_clock::now();
program_start_time += (now - offline_mark_time);
std::cout << (program_start_time > copy_of_program_start_time) << '\n';
}
如果构建离线标记时间
和现在
之间的持续时间小于系统时钟::持续时间
的精度(我为1微秒),然后now
和offline\u mark\u time
可能相等,因此在这种情况下,0将添加到program\u start\u time
1