◐ Shell
clean mode source ↗

std::tm — cppreference.com

Материал из cppreference.com

Структура, содержащая календарную дату и время, разбитые на составляющие.

Объекты-элементы

int tm_sec

количество секунд, прошедших с начала минуты – [061] (до C++11)[061] (начиная с C++11)[сноска 1]
(публичный объект-член)

int tm_min

количество минут, прошедших с начала часа – [059]
(публичный объект-член)

int tm_hour

количество часов, прошедших с полуночи – [023]
(публичный объект-член)

int tm_mday

день месяца – [131]
(публичный объект-член)

int tm_mon

месяц начиная с января – [011]
(публичный объект-член)

int tm_year

количество лет, прошедших с 1900 года
(публичный объект-член)

int tm_wday

количество дней с воскресенья – [06]
(публичный объект-член)

int tm_yday

количество дней с 1 января – [0365]
(публичный объект-член)

int tm_isdst

Флаг перехода на летнее время. Значение положительное, если действует летнее время, нулевое, если нет, и отрицательное, если нет доступной информации
(публичный объект-член)
Примечание

Стандарт требует присутствия только вышеупомянутых элементов в некотором порядке. Реализации обычно добавляют в эту структуру больше элементов данных.

  1. Диапазон допускает положительную високосную секунду. Две високосные секунды в одной и ту же минуте не допускаются (диапазон [061] был дефектом, введённым в C89 и исправленным в C99)

Пример

#include <ctime>
#include <iostream>

int main()
{
    std::tm tm{};
    tm.tm_year = 2022-1900;
    tm.tm_mday = 1;

    std::mktime(&tm);
    std::cout << std::asctime(&tm)
              << "sizeof(std::tm) = "
              << sizeof(std::tm) << '\n';
}

Возможный вывод:

Sat Jan  1 00:00:00 2022
sizeof(std::tm) = 56

Смотрите также

преобразует время с начала эпохи в календарное время, выраженное как местное время
(функция) [править]
преобразует время, прошедшее с начала эпохи, в календарное время, выраженное в виде Универсального Скоординированного Времени
(функция) [править]