C++ 如何将持续时间添加到时间点?
我试过这样的方法:C++ 如何将持续时间添加到时间点?,c++,chrono,C++,Chrono,我试过这样的方法: using clock = std::chrono::system_clock; clock::time_point nowp = clock::now(); clock::time_point end = nowp + std::chrono::seconds(10); time_t nowt = clock::to_time_t ( nowp ); time_t endt = clock::to_time_t ( end); std::cerr << "
using clock = std::chrono::system_clock;
clock::time_point nowp = clock::now();
clock::time_point end = nowp + std::chrono::seconds(10);
time_t nowt = clock::to_time_t ( nowp );
time_t endt = clock::to_time_t ( end);
std::cerr << " " << ctime(&nowt) << " " << ctime(&endt) << std::endl;
我做错了什么?如何将10秒添加到现在?问题可能是因为
ctime
store会导致一些静态存储,并返回指向您的指针
因此,它会用另一个结果覆盖一个结果并打印两次。
标准没有规定操作顺序,因此其作用是:
ctime
,它将表示形式保存在内部缓冲区中并返回指向它的指针ctime
,该参数将表示形式保存在同一内部缓冲区中,并返回指向它的指针划分操作来强制计算顺序代码>
编码
#包括
#包括
使用名称空间std;
int main(){
使用时钟=标准::时钟::系统时钟;
clock::time_point nowp=clock::now();
时钟::时间\点结束=nowp+std::时钟::秒(10);
time\u t nowt=时钟::到时间(nowp);
time\u t endt=时钟::至\u time\u t(结束);
std::对我来说,您的代码有效:2017年12月16日周六16:26:27 2017年12月16日周六16:26:37
有关打印计时对象的更简单方法,请参阅。
Sat Dec 16 15:06:43 2017
Sat Dec 16 15:06:43 2017
#include <iostream>
#include <chrono>
using namespace std;
int main() {
using clock = std::chrono::system_clock;
clock::time_point nowp = clock::now();
clock::time_point end = nowp + std::chrono::seconds(10);
time_t nowt = clock::to_time_t ( nowp );
time_t endt = clock::to_time_t ( end);
std::cout << " " << ctime(&nowt) << "\n";
std::cout << ctime(&endt) << std::endl;
return 0;
}