mktime – перевод календарного времени в UTC время в секундах.
Синтаксис:
#include < time.h >
time_t mktime(struct tm *m_time);
Аргументы:
m_time – указатель на структуру, содержащую время для преобразования.
Возвращаемое значение:
UTC время в секундах, начиная с 0 часов 1 января 1970 года, если структура на которую указывает аргумент m_time содержит корректные данные, в противном случае возвращается -1.
Описание:
Функция mktime () на основе данных содержащихся в структуре m_time (локального времени), рассчитывает UTC время в секундах, истекшее с 0 часов 1 января 1970 года, с учетом установленного в операционной системе часового пояса.
Структура tm содержит элементы:
int tm_sec – секунды (отсчет с 0);
int tm_min – минуты (отсчет с 0);
int tm_hour - часы (отсчет с 0);
int tm_mday - день месяца (отсчет с 1);
int tm_mon - месяц (отсчет с 0);
int tm_year – год (за начала отсчета принят 1900 год);
int tm_wday - день недели (воскресенье - 0);
int tm_yday - день в году (отсчет с 0);
int tm_isdst - признак "летнее время" (больше нуля если «летнее время», ноль если «зимнее время», меньше нуля если нет информации.
Пример:
В примере, на основе вручную заполненной структуры типа tm рассчитывается UTC время в секундах и результат выводится в консоль.
#include < stdio.h > //Для printf
#include < string.h > //Для mktime
int main (void)
{
//Структура с местным временем
struct tm m_time;
// Заполняем структуру. Для заполнения используем дату:
// Sat May 18 14:12:09 2014
m_time.tm_sec = 9;
m_time.tm_min = 12;
m_time.tm_hour = 14;
m_time.tm_mday = 18;
m_time.tm_mon = 4;
m_time.tm_year = 114;
m_time.tm_wday = 6;
m_time.tm_yday = 137
m_time.tm_ isdst = -1;
//Рассчитываем UTC время в секундах и результат выводи в консоль
printf (“Время: %ld секунд\n”,mktime (&m_time) );
return 0;
}
| |
Результат:
Вывод в консоль:
Смотри так же:
asctime,
asctime_r,
clock_getres,
clock_gettime,
clock_gettime,
ctime,
ctime_r,
difftime,
gmtime,
gmtime_r,
localtime,
localtime_r,
mktime,
strftime,
time
|