std::tm
Материал из cppreference.com
Структура, содержащая календарную дату и время, разбитые на составляющие.
Объекты-элементы
int tm_sec |
количество секунд, прошедших с начала минуты – [0, 61] (до C++11)[0, 61] (начиная с C++11)[сноска 1] (публичный объект-член) |
int tm_min |
количество минут, прошедших с начала часа – [0, 59] (публичный объект-член) |
int tm_hour |
количество часов, прошедших с полуночи – [0, 23] (публичный объект-член) |
int tm_mday |
день месяца – [1, 31] (публичный объект-член) |
int tm_mon |
месяц начиная с января – [0, 11] (публичный объект-член) |
int tm_year |
количество лет, прошедших с 1900 года (публичный объект-член) |
int tm_wday |
количество дней с воскресенья – [0, 6] (публичный объект-член) |
int tm_yday |
количество дней с 1 января – [0, 365] (публичный объект-член) |
int tm_isdst |
Флаг перехода на летнее время. Значение положительное, если действует летнее время, нулевое, если нет, и отрицательное, если нет доступной информации (публичный объект-член) |
Примечание
Стандарт требует присутствия только вышеупомянутых элементов в некотором порядке. Реализации обычно добавляют в эту структуру больше элементов данных.
- ↑ Диапазон допускает положительную високосную секунду. Две високосные секунды в одной и ту же минуте не допускаются (диапазон
[0,61]был дефектом, введённым в 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
Смотрите также
| преобразует время с начала эпохи в календарное время, выраженное как местное время (функция) | |
| преобразует время, прошедшее с начала эпохи, в календарное время, выраженное в виде Универсального Скоординированного Времени (функция) | |
Документация C по tm
| |