мета-данные страницы
time.h
time
прототип: time_t time(time_t *arg);
В качестве параметра передается указатель на объект типа time_t, в который помещается текущие дата/время. То есть мы можем получить дату/время двумя способами:
- как результат функции
time_t mytime = time(NULL); - как записать по указателю, переданному функции
time_t mytime; time(&mytime);
localtime
получает указатель на time_t, возвращает структуру типа tm
time_t mytime = time(NULL); struct tm *now = localtime(&mytime);
Структура tm хранит данные в ряде своих элементов, каждый из которых представляет тип int:
- tm_sec: секунды от 0 до 60
- tm_min: минуты от 0 до 59
- tm_hour: часы от 0 до 23
- tm_mday: день месяца от 1 до 31
- tm_mon: месяц от 0 до 11
- tm_year: год, начиная с 1900
- tm_wday: день недели от 0 до 6 (воскресенье имеет номер 0)
- tm_yday: количество дней года, прошедших с 1 января, от 0 до 365
- tm_isdst: если больше 0, то установлен переход на летнее время. Если равно 0, то переход на летнее время не действует.
strftime
преобразует дату и время в строку в определенном формате
- Первый аргумент представляет строку, в которую помещается данные. В данном случае это массив char str[20]
- Второй аргумент представляет размер строки, которую помещаются данные. В данном случае это вся строка.
- Третий аргумент представляет спецификатор форматирования. Здесь применяется спецификатор «%T», который представляет вывод времени в формате «часы:минуты:секунды».
- Четвертый аргумент собственно представляет дату и время в виде структуры tm
Список спецификаторов:
- %H возвращает часы
- %M возвращает минуты
- %S возвращает секунды
- %d возвращает номер дня
- %m возвращает номер месяца
- %h возвращает сокращенное название месяца
- %y возвращает год в виде последних двух цифр
- %Y возвращает год в виде четырех цифр
- %D выводит дату, аналогичен набору спецификаторов %m/%d/%y
- %T выводит время, аналогичен набору спецификаторов %H:%M:%S