2014-07-08 6 views
-1

Есть ли стандартный класс времени C++, который имеет методы для вычитания дат например: Я хочу вычесть 10 минут с даты, как это (1 января, понедельник 2014 00:05) и получить дату, подобную этой (Декабрь 31 вс 2013 23:55)Как вычесть время с даты

было бы удивительным, если есть такая функция «структура тМ» типа

ответ

2

cppreference показывает достаточно функций (указываете ей, МестноеВремя) для преобразования struct tm с time_t. Расчеты очевидны с time_t, потому что это интегральный тип традиционно представляющий количество секунд, прошедших с 1970 года Newyear

0

я не знаю, есть ли какой-либо метод для struct tm, но я думаю, вы должны прочитать о chrono доступны в C++11. Link

+0

Ну, есть 'difftime', это только' mktime' от 'структура tm'. – dkb

+1

'chrono' не поможет справиться с датами календаря. Для этого вам понадобятся «mktime» и друзья из библиотеки C или сторонняя библиотека, например Boost.DateTime. –

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; 
} 
Смежные вопросы