Страницы

Поиск по вопросам

вторник, 2 апреля 2019 г.

Как грамотно вычесть несколько минут из текущего времени в С++?

Уважаемые коллеги! Производственная необходимость просит написать текущее время за минусом 10 минут и у меня не очень-то получается. Напомню, что получают время примерно так:
#include "stdafx.h" #include #include #include #include // size_t #include // strlen, strcpy
using namespace std;
int main() { setlocale(LC_ALL, "Russian");
SYSTEMTIME st, lt;
GetSystemTime(&st); GetLocalTime(<); double dm = st.wMinute - 5; //за минусом 5 минут double dm1 = lt.wMinute - 5; //за минусом 5 минут //Просто вывод времени printf("The system time is: %02d:%02d
", st.wHour, st.wMinute); printf(" The local time is: %02d:%02d
", lt.wHour, lt.wMinute); //Новое время для моего проекта. printf("The system time is: %02d:%02d
", st.wHour, dm); printf(" The local time is: %02d:%02d
", lt.wHour, dm1); system("PAUSE"); return 0; }
Output:
The system time is: 09:24 The local time is: 12:24 The NEW system time is: 09:00 The NEW local time is: 12:00
Вполне очевидно что третья и четвёртая строка нас не могут удовлетворить. Как грамотно исправить это безобразие?


Ответ

Чувствую, что намеки в комментариях не помогают... Начните со строк
double dm = st.wMinute - 5; //за минусом 5 минут double dm1 = lt.wMinute - 5; //за минусом 5 минут
Замените их строками
int dm = st.wMinute - 5; //за минусом 5 минут int dm1 = lt.wMinute - 5; //за минусом 5 минут
Дальше будут другие проблемы - когда эта разность окажется отрицательной... но это уже немного другой вопрос.

Комментариев нет:

Отправить комментарий