Здрасти всем,
В общем что мне нужно: чисто консольное приложение в стиле MS DOS, алгоритм следующий:
printf "До события осталось [25.04.2011 - *определить системную дату и время*]
Т.е. имеется определенная дата, пример 25.04.2011 Мне нужно, чтобы он высчитывал разницу между текущей датой и целевой, и показывал, сколько дней, часов и минут осталось до целевой даты..
Как это можно реализовать?
C/C++ - консольное приложение в С..
-
PhilB
Re: C/C++ - консольное приложение в С..
В си есть модуль
Там есть функции и структуры для работы со временем.
struct tm
{
int tm_sec; /* Seconds. [0-60] (1 leap second) */
int tm_min; /* Minutes. [0-59] */
int tm_hour; /* Hours. [0-23] */
int tm_mday; /* Day. [1-31] */
int tm_mon; /* Month. [0-11] */
int tm_year; /* Year - 1900. */
int tm_wday; /* Day of week. [0-6] */
int tm_yday; /* Days in year.[0-365] */
int tm_isdst; /* DST. [-1/0/1]*/
}
time_t mktime(struct tm «tp)
mktime преобразует местное время, заданное структурой *tp, в календарное,
выдавая его в том же виде, что и функция time. Компоненты будут иметь зна-
чения в указанных диапазонах. Функция mkt ime возвращает календарное вре-
мя или -1, если оно не представимо.
time_t time(time_t *tp)
time возвращает текущее календарное время (т. е. время, прошедшее после оп-
ределенной даты, - обычно после 0 ч 00 мин 00 с GMT 1-го января 1970 г. -
примеч. ред.) или -1, если время не известно. Если tp не равно NULL, то возвра-
щаемое значение записывается и в *tp.
double difftime(time_t time2, time_t timel)
dif ftime возвращает разность time2-time1, выраженную в секундах
Комбинируя эти функции можно получить то, что вам надо.
Там есть функции и структуры для работы со временем.
struct tm
{
int tm_sec; /* Seconds. [0-60] (1 leap second) */
int tm_min; /* Minutes. [0-59] */
int tm_hour; /* Hours. [0-23] */
int tm_mday; /* Day. [1-31] */
int tm_mon; /* Month. [0-11] */
int tm_year; /* Year - 1900. */
int tm_wday; /* Day of week. [0-6] */
int tm_yday; /* Days in year.[0-365] */
int tm_isdst; /* DST. [-1/0/1]*/
}
time_t mktime(struct tm «tp)
mktime преобразует местное время, заданное структурой *tp, в календарное,
выдавая его в том же виде, что и функция time. Компоненты будут иметь зна-
чения в указанных диапазонах. Функция mkt ime возвращает календарное вре-
мя или -1, если оно не представимо.
time_t time(time_t *tp)
time возвращает текущее календарное время (т. е. время, прошедшее после оп-
ределенной даты, - обычно после 0 ч 00 мин 00 с GMT 1-го января 1970 г. -
примеч. ред.) или -1, если время не известно. Если tp не равно NULL, то возвра-
щаемое значение записывается и в *tp.
double difftime(time_t time2, time_t timel)
dif ftime возвращает разность time2-time1, выраженную в секундах
Комбинируя эти функции можно получить то, что вам надо.
-
Viajero
Re: C/C++ - консольное приложение в С..
Хмм, все таки не могу понять что со всем этим делать) Как заставить его выводить время, предварительно высчитивая нужные мне данные?
-
PhilB
Re: C/C++ - консольное приложение в С..
До куда вы дошли и что не получается? Не совсем ясно, что вас не ясно.