Функции времени, даты и геополитической среды

Стандартная библиотека C/C++ включает ряд функций, работающих с датой и временем, а также функции, обрабатывающие геополитическую информацию, связанную с программой. Именно этим функциям и посвящена данная глава.

В языке С использование функций даты и времени требует включения заголовка <time.h>, а в языке C++ — заголовка <ctime.h>. В этой главе для простоты изложения используются имена С-заголовков, но ссылки на заголовок <time.h> в соответствующей среде нужно заменить ссылками на заголовок <ctime.h>.

В заголовке <time.h> определены три типа данных, связанных с исчислением времени: clock_t, time_t и tin. Типы clock_t и time_t предназначены для представления системного времени и даты в виде некоторого целого значения, называемого календарным временем. Тип структуры tm содержит дату и время в виде разбиения на элементы. Итак, структура tm содержит следующие члены.

struct tm{
	int tm_sec;	//секунды, 0-61
	int tm_min;	//минуты, 0-59
	int tm_hour;	//часы, 0-23
	int tm_mday;	//день месяца, 1-31
	int tm_non;	//месяц, начиная с января, 0-11
	int tm_year;	//год после 1900
	int tm_wday;	//день, начиная с воскресенья, 0-6
	int tm_yday;	//день, начиная с 1-го января, 0-365
	int tm_isdst	//индикатор летнего времени
}

Значение tm_isdst положительно, если действует режим летнего времени(Daylight Saving Time), равно нулю, если не действует, и отрицательно, если информация об этом недоступна.

Кроме того, в заголовке <time.h> определен макрос CLOCKS_PER_SEC, который выдает количество тиканий системных часов в секунду.

Для работы с функциями геополитической среды необходимо использовать в языке С заголовок <locale.h>, а в языке C++ — заголовок <clocale.h>. В этих заголовках определена структура lconv, которая приведена в описании функции localeconv().

Список функций

asctime — Возвращает указатель на строку, которая содержит информацию о дате и времени
clock — Возвращает значение, которое приблизительно соответствует продолжительности времени работы вызывающей программы
ctime — Возвращает указатель на строку, которая содержит информацию о дате и времени
difftime — Возвращает значение разности в секундах между значениями заданных параметров
gmtime — Возвращает указатель на поэлементную форму параметра time в виде структуры tm
localeconv — Возвращает указатель на структуру типа, которая содержит различную информацию о геополитической среде
localtime — Возвращает указатель на поэлементную форму параметра time в виде структуры tm
mktime — Возвращает эквивалент календарного времени на основе времени, заданного в поэлементном виде и хранимого в структуре, которая адресуется параметром time
setlocale — Позволяет запросить или установить определенные параметры, которые зависят от геополитической среды выполнения программы
strftime — Помещает информацию о времени и дате(вместе с другой информацией) в строку
time — Возвращает текущее календарное время системы