мета-данные страницы

time.h

time

прототип: time_t time(time_t *arg);

В качестве параметра передается указатель на объект типа time_t, в который помещается текущие дата/время. То есть мы можем получить дату/время двумя способами:

  1. как результат функции time_t mytime = time(NULL);
  2. как записать по указателю, переданному функции 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