Уважаемые коллеги! Производственная необходимость просит написать текущее время за минусом 10 минут и у меня не очень-то получается. Напомню, что получают время примерно так:
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <windows.h>
#include <cstddef> // size_t
#include <cstring> // 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\n", st.wHour, st.wMinute);
printf(" The local time is: %02d:%02d\n", lt.wHour, lt.wMinute);
//Новое время для моего проекта.
printf("The system time is: %02d:%02d\n", st.wHour, dm);
printf(" The local time is: %02d:%02d\n", 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
Вполне очевидно что третья и четвёртая строка нас не могут удовлетворить. Как грамотно исправить это безобразие?
printf? Или вы хотите сказать, что значение времени меняется само? – Harry Mar 02 '17 at 09:37doubleс помощью спецификатора%02d? – Harry Mar 02 '17 at 09:44doubleс помощью спецификатора%02d. По указанной вами ссылке так выводится целочисленное значение. Начните с исправления строк вывода. Это не единственная ваша проблема, вы столкнетесь с другой, когда соберетесь уменьшать на 5 минут, скажем, 2 минуты... но для начала - исправьте код. Зачем вам здесьdouble? – Harry Mar 02 '17 at 09:52