如何从日期中减去时间

时间:2014-07-08 10:47:44

标签: c++ datetime time timespan

是否有标准的c ++时间类,它有减去日期的方法 例如: 我想从这样的日期减去10分钟(2014年1月1日星期一00:05)并得到那样的日期(2013年12月31日太阳23:55)

如果“struct tm”类型

有这样的功能,那将是很棒的

3 个答案:

答案 0 :(得分:2)

cppreference显示了足够的功能(mktime,localtime),可以struct tmtime_t进行转换。使用time_t计算是显而易见的,因为它是传统上代表自1970年以来的秒数的整数类型。

答案 1 :(得分:0)

我不知道struct tm是否有任何方法,但我认为您应该阅读chrono中提供的C++11Link

答案 2 :(得分:0)

如果您可以使用C ++ 11,您可以轻松减去日期并添加日期:

#include <iostream>
#include <chrono>
#include <ctime>
#include <ratio>
using namespace std;

int main ()
{
  chrono::system_clock::time_point today = chrono::system_clock::now();
  chrono::system_clock::duration dtn (chrono::duration<int,ratio<60,1>>(10));

  time_t t = chrono::system_clock::to_time_t(today-dtn);
  cout << ctime(&t) << endl;

  return 0;
}