#winapi #visual-c #mfc
#winapi #visual-c #mfc
Вопрос:
Я работаю над проектом VC с использованием MFC. В моей функции есть объект CTime, который имеет значение «10/11/2016 03:00:00″……. что-то в этом роде.
Я хочу вычесть одну секунду из временной части. Так что это будет выглядеть
«10/11/2016 02:59:59»
Так, например, если значение CTime равно «22.10.2016 07:45:50», то после вычитания на 1 секунду оно должно быть «22.10.2016 07:45:49»
Я пытался,
CTime — 1, но это выдает ошибку.
Обновить:
Я исправил это с помощью,
time_t myTime= CTime.GetTime();
myTime= myTime - 1;
time_t указывает время в секундах, и, таким образом, на данный момент оно прямолинейно.
Ответ №1:
Чтобы добавить или вычесть из a или из a CTime
, вам нужно использовать CTimeSpan
объект для указания продолжительности, которую вы хотите добавить или вычесть.
Например, чтобы вычесть секунду:
CTime cNewTime = cOldTime - CTimeSpan(0, 0, 0, 1);
Комментарии:
1. Я исправил это, используя метод, который я только что добавил в качестве ОБНОВЛЕНИЯ. Я все еще голосую за ваш ответ за любезное предложение.
2. @Donsan: код, приведенный в этом ответе, намного более удобочитаем, чем предлагаемое вами решение. Это явно передает намерение автора ( «вычтите промежуток времени» ), что всегда должно быть вашей основной целью.