Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   консольное приложение в С.. (http://forum.oszone.net/showthread.php?t=201742)

Viajero 11-03-2011 19:27 1632629

консольное приложение в С..
 
Здрасти всем,

В общем что мне нужно: чисто консольное приложение в стиле MS DOS, алгоритм следующий:

printf "До события осталось [25.04.2011 - *определить системную дату и время*]

Т.е. имеется определенная дата, пример 25.04.2011 Мне нужно, чтобы он высчитывал разницу между текущей датой и целевой, и показывал, сколько дней, часов и минут осталось до целевой даты..

Как это можно реализовать?

PhilB 11-03-2011 20:01 1632674

В си есть модуль <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, выраженную в секундах

Комбинируя эти функции можно получить то, что вам надо.

Viajero 21-03-2011 10:27 1639927

Хмм, все таки не могу понять что со всем этим делать) Как заставить его выводить время, предварительно высчитивая нужные мне данные?

PhilB 25-03-2011 17:44 1643777

До куда вы дошли и что не получается? Не совсем ясно, что вас не ясно.


Время: 09:25.

Время: 09:25.
© OSzone.net 2001-