Заголовочный файл ctime (time.h)
Эта библиотека содержит функции для работы со временем и датой в С++.
Функции библиотеки ctime
| Функции управления временем | |
|---|---|
| clock | Функция возвращает количество тактов процессора, прошедших с момента запуска программы. |
| difftime | Возвращает разницу между двумя значениями времени. |
| mktime | Перевод структуры timeptr в time_t . |
| time | Получить текущее время. |
| Функции преобразования | |
| asctime | Преобразование значения структуры timeptr в строку. |
| ctime | Преобразование значения типа time_t в строку. |
| gmtime | Принимает значение текущего времени в секундах и инициализирует структуру в формате GMT . |
| localtime | Принимает значение текущего времени в секундах и инициализирует структуру в местном формате времени. |
| strftime | Преобразование времени в символьную строку. |
Макросы библиотеки ctime
| CLOCKS_PER_SEC | Количество тактов в секунду. |
| NULL | Нуль указатель. |
Типы данных библиотеки ctime
| clock_t | Тип данных, для представления тактов. |
| size_t | Интегральный тип данных |
| time_t | Тип данных времени. |
| struct tm | Структура времени. |
Поделиться:
Rust Journey: Хотите освоить язык программирования, который завоевывает мир?
Илон Маск, один из ведущих инноваторов нашего времени, утверждает, что за Rust будущее. А когда последний раз он ошибался в своих прогнозах?
✨ Не упустите свой шанс быть в авангарде IT-революции. Подписывайтесь на канал Rust Journey и начните свой путь в захватывающий мир Rust сегодня!
Новое
- Особенности Qt: слоты и сигналы, описание QObject и QApplication, виды окон и т.д.
- Первая программа на Qt:
- Введение — графическая библиотека Qt
- Наследование классов
- Перегрузка операторов в С++ (часть 2)
char *ctime(const time_t *time)
день месяц дата часы:минуты:секунды год
где в качестве аргумента используется указатель на календарное время. Календарное время обычно получается с помощью вызова функции time(). Функция ctime() эквивалентна следующей функции:
Используемый функцией ctime() буфер для хранения форматированной строки выходных данных представляет собой статически выделенный массив символов, содержимое которого обновляется всякий раз при вызове функции. Если необходимо сохранить содержимое строки, то следует скопировать ее куда-либо.
Следующая программа служит для вывода локального времени системы :
#include
#include
#inciude
int main ( void )
{
time_t lt ;
It = time ( NULL ) ;
printf ( ctime ( & lt ) ) ;
return 0 ;
}
Ctime – преобразовывает дату и время в строку

Функция ctime преобразует время, адресный указатель которого находится в аргументе time (это значение возвращается функцией time) в 26-символьную строку следующего вида, заканчивающуюся символами новой строки и нуля:
Mon Nov 21 11:31:54 1983\n\0
Глобальная переменная timezone (тип long) должна содержать разницу в секундах между временем по Гринвичу (GMT) и местным стандартным временем (В PST timezone равна 8*60*60). Глобальная переменная daylight имеет ненулевое значение только, если применяется стандартное преобразование летнего времени для USA.
Возвращаемое значение
Функция ctime возвращает указатель на символьную строку, содержащую дату и время. Данная строка является статической переменной, которая перезаписывается при каждом вызове функции ctime.
Переносимость
Поддерживается в системах UNIX и определена в ANSI C.
Пример
#include #include int main(void)
Ctime c что это
asctime, ctime, gmtime, localtime, mktime — преобразует дату и время в формат ASCII или в календарное представление
СИНТАКСИС
#include time.h> char *asctime(const struct tm *tm); char *asctime_r(const struct tm *tm, char *buf); char *ctime_r(const time_t *timep, char *buf); char *ctime(const time_t *timep); struct tm *gmtime(const time_t *timep); struct tm *gmtime_r(const time_t *timep, struct tm *result); struct tm *localtime(const time_t *timep); struct tm *localtime_r(const time_t *timep, struct tm *result); time_t mktime(struct tm *tm);
ОПИСАНИЕ
Функции ctime() , gmtime() и localtime() в качестве агрумента используют тип данных time_t , представляющий собой календарное время. Функции интерпретируют его как абсолютное время, содержащее количество секунд, прошедших с 00:00:00 1 января 1970 года времени UTC.
Функции asctime() и mktime() используют в качестве аргумента локальное время в календарном представлении, то есть разделеное на год, месяц, день и т.д. Время в календарном представлении хранится в структуре tm , которая определена в файле следующим образом:
struct tm < int tm_sec; /* секунды */ int tm_min; /* минуты */ int tm_hour; /* часы */ int tm_mday; /* день месяца */ int tm_mon; /* месяц */ int tm_year; /* год */ int tm_wday; /* день недели */ int tm_yday; /* день года */ int tm_isdst; /* летнее время */ >;
Члены структуры tm : tm_sec Число секунд, прошедших после минуты, обычно в диапазоне от 0 до 59; но для того, чтобы установить високосную секунду, используются числа до 61. tm_min Число минут, прошедших после часа, от 0 до 59. tm_hour Количество прошедших часов после полуночи, от 0 до 23. tm_mday День месяца, от 1 до 31. tm_mon Число месяцев, прошедших с января, от 0 до 11. tm_year Число лет, прошедших с 1900. tm_wday Число дней, прошедших с воскресенья, от 0 до 6. tm_yday Количество дней, прошедших с 1 января, от 0 до 365. tm_isdst Этот флаг показывает, в действительности ли «летнее» время учтено в этой структуре. Значение флага положительно, если «летнее» время учитывается, 0, если нет, и отрицательно, если информация недоступна.
Функция ctime( t ) является эквивалентом asctime(localtime( t )) . Она преобразует календарное время t в строку формата
«Wed Jun 30 21:49:08 1993\n»
Аббревиатуры дней недели: `Sun’, `Mon’, `Tue’, `Wed’, `Thu’, `Fri’ и `Sat’. Аббревиатуры месяцев: `Jan’, `Feb’, `Mar’, `Apr’, `May’, `Jun’, `Jul’, `Aug’, `Sep’, `Oct’, `Nov’ и `Dec’. Возвращаемое значение указывает на статически размещенную строку, которая может быть заново записана с помощью последовательности вызовов любых функций даты и времени. Функция также устанавливает значение внешней переменной tzname (см. tzset (3)) равным значению текущей временной зоны. Реентрантная версия ctime_r() делает то же самое, но заносит строку в буфер, предоставляемый пользователем. Длина буфера должна быть не менее 26 байт. Устанавливать tzname необязательно.
Функция gmtime() преобразует календарное время timep в локальное представление времени, определенное во всеобщем скоординированном времени (UTC). Но она может вернуть значение NULL, если год не может быть описан типом integer. Возвращаемое значение указывает на статически выделенную структуру, содержимое которой может быть перезаписано последующими вызовами любых функций, работающих с датой и временем. Функция gmtime_r() делает то же самое, но помещает данные в структуру, предоставленную пользователем.
Функция localtime() преобразует календарное время timep в локальное, определенное в соответствии с заданной пользователем временной зоной. Функция работает так, как будто она вызывает tzset (3), и устанавливает внешние переменные: tzname в значение текущей временной зоны, timezone в значение разницы в секундах между всеобщим скоординированным временем (UTC) и локальным стандартом времени и daylight в ненулевое значение, если используются стандартные правила «летнего» времени. Возвращаемое значение указывает на статически выделенную структуру, содержимое которой может быть перезаписано последующими вызовами любых функций, работающих с датой и временем. Функция localtime_r() делает то же самое, но помещает данные в структуру, предоставленную пользователем. Она не нуждается в установке tzname .
Функция asctime() преобразует значение локального времени tm в строку того же формата, что и функция ctime() . Возвращаемое значение указывает на статическую строку, которая может быть перезаписана последовательностью вызовов любых функций даты и времени. Функция asctime_r() делает то же самое, но заносит строку в буфер, предоставленный пользователем. Длина буфера должна быть не менее 26 байт.
Функция mktime() преобразует время в календарном представлении в абсолютное время. Функция игнорирует содержимое полей структуры tm_wday и tm_yday и пересчитывает их значения в соответствии с другими элементами структуры. Если значения элементов структуры выходят за пределы допустимых значений, то они «нормализуются» (так, например, 40 октября превращается в 9 ноября). Вызов mktime() также присваивает внешней переменной tzname значение текущей временной зоны. Если локальное время не может быть представлено как календарное (число секунд с начала века), то mktime() возвращает значение (time_t)(-1) и не изменяет значения членов структуры локального времени tm_wday и tm_yday .
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Все вышеперечисленные функции возвращают описанное значение или NULL (-1 в случае mktime() ) при возникновении ошибки.
ЗАМЕЧАНИЯ
Функции asctime() , ctime() , gmtime() и localtime() возвращают указатели на статические данные и небезопасны с точки зрения подпроцессов (threads). Безопасными являются их аналоги asctime_r() , ctime_r() , gmtime_r() и localtime_r(), введенные в SUSv2 и повившееся в libc 5.2.5.
Структура struct tm библиотеки glibc имеет дополнительные поля
long tm_gmtoff; /* Секунды восточнее UTC */ const char *tm_tm_zone; /* Аббревиатура временной зоны */
определяемые в случае, если _BSD_SOURCE был определен до включения . Это расширение BSD, присутствующее в 4.3BSD-Reno.