netlib.narod.ru< Назад | Оглавление | Далее >

B10. Функции даты и времени: <time.h>

Заголовочный файл <time.h> объявляет типы и функции, связанные с датой и временем. Некоторые функции имеют дело с местным временем, которое может отличаться от календарного, например в связи с зонированием времени. Типы clосk_t и time_t — арифметические типы для представления времени, a struct tm содержит компоненты календарного времени:

int tm_sec;

секунды от начала минуты (0, 59);

int tm_min;

минуты от начала часа (0, 59);

int tm_hour;

часы от полуночи (0, 23);

int tm_mday;

число месяца (1,31);

int tm_mon;

месяцы с января(0,11);

int tm_year;

годы с 1900;

int tm_wday;

дни с воскресенья (0, 6);

int tm_yday;

дни с 1 января (0, 365);

int tm_isdst;

признак летнего времени.


Значение tm_isdst — положительное, если время приходится на сезон, когда время суток сдвинуто на 1 час вперед, нуль в противном случае и отрицательное, если информация не доступна.


clock_t clock(void)

clock возвращает время, фиксируемое процессором от начала выполнения программы, или –1, если оно не известно. Для выражения этого времени в секундах применяется формула clock()/CLOCKS_PER_SEC.


time_t time(time_t *tp)

time возвращает текущее календарное время (т.е. время, прошедшее после определенной даты, — обычно после 0 ч 00 мин 00 с GMT 1-го января 1970 г.) или –1, если время не известно. Если tp не равно NULL, то возвращаемое значение записывается и в *tp.


double difftime(time_t time2, time_t time1)

difftime возвращает разность time2 – time1, выраженную в секундах.


time_t mktime(struct tm *tp)

mktime преобразует местное время, заданное структурой *tp, в календарное, выдавая его в том же виде, что и функция time. Компоненты будут иметь значения в указанных диапазонах. Функция mktime возвращает календарное время или –1, если оно не представимо.


Следующие четыре функции возвращают указатели на статические объекты, каждый из которых может быть изменен другими вызовами.


char *asctime(const struct tm *tp)

asctime переводит время в структуре *tp в строку вида

       Sun Jan 3 15:14:13 1988\n\0

char *ctime(const time_t *tp)

ctime переводит календарное время в местное, что эквивалентно выполнению

       asctime(localtime(tp))

struct tm *gmtime(const time_t *tp)

gmtime переводит календарное время во Всемирное координированное время (Coordinated Universal Time — UTC). Выдает NULL, если UTC не известно. Имя этой функции, gmtime, происходит от Greenwich Mean Time (среднее время по Гринвичскому меридиану).


struct tm *localtime(const time_t *tp)

localtime переводит календарное время *tp в местное.


size_t strftime(char *s, size_t smax, const char *fmt, const struct tm *tp)

strftime форматирует информацию о дате и времени из *tp в строку s согласно формату fmt, который имеет много общих черт с форматом, задаваемым в функции printf. Обычные символы (включая и завершающий символ '\0') копируются в s. Каждая пара, состоящая из % и буквы, заменяется, как показано ниже, с использованием значений по форме, соответствующей местным традициям. В s размещается не более smax символов; strftime возвращает число символов без учета '\0' или нуль, если число сгенерированных символов больше smax.

%a

сокращенное название дня недели

%A

полное название дня недели

%b

сокращенное название месяца

%B

полное название месяца

%c

местное представление даты и времени

%d

день месяца (01 – 31)

%H

час в 24-часовом представлении (00 – 23)

%I

час в 12-часовом представлении (01 – 12)

%j

день от начала года (001 – 366)

%m

месяц (01 – 12)

%M

минута (00 – 59)

%p

местное представление AM или РМ (до или после полудня)

%S

секунда (00 – 61)

%U

неделя от начала года (считая, что воскресенье — 1-й день недели) (00 – 53)

%w

день недели (0 – 6, номер воскресенья — 0)

%W

неделя от начала года (считая, что понедельник — 1-й день недели) (00 – 53)

%x

местное представление даты

%X

местное представление времени

%y

год без указания века (00 – 99)

%Y

год с указанием века

%Z

название временной зоны, если она есть

%%

%


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz