Существует ли стандартный класс времени C ++, в котором есть методы для вычитания дат
например:
Я хочу вычесть 10 минут от этой даты (1 января 2014 г. 00:05) и получить такую дату (31 декабря 2013 г. 23:55)
Было бы здорово, если бы была такая функция для типа «struct tm»
cppreference показывает достаточно функций (mktime, localtime) для конвертации struct tm
с time_t
, Расчеты очевидны с time_t
потому что это интегральный тип, традиционно представляющий количество секунд с нового года 1970 года.
я не знаю, есть ли способ для struct tm
но я думаю, что вы должны прочитать о chrono
доступно в C++11
,
Ссылка на сайт
Если вы можете использовать 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;
}