Показать полную графическую версию : консольное приложение в С..
Здрасти всем,
В общем что мне нужно: чисто консольное приложение в стиле MS DOS, алгоритм следующий:
printf "До события осталось [25.04.2011 - *определить системную дату и время*]
Т.е. имеется определенная дата, пример 25.04.2011 Мне нужно, чтобы он высчитывал разницу между текущей датой и целевой, и показывал, сколько дней, часов и минут осталось до целевой даты..
Как это можно реализовать?
В си есть модуль <time.h>
Там есть функции и структуры для работы со временем.
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, выраженную в секундах
Комбинируя эти функции можно получить то, что вам надо.
Хмм, все таки не могу понять что со всем этим делать) Как заставить его выводить время, предварительно высчитивая нужные мне данные?
До куда вы дошли и что не получается? Не совсем ясно, что вас не ясно.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.