std::tm
Определено в заголовке <ctime> |
||
|---|---|---|
struct tm; |
Структура, хранящая календарную дату и время, разбитые на составляющие.
Члены
|
int tm_sec
|
секунды после минуты – [0, 61](до C++11) [0, 60](с 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
|
Флаг летнего времени. Значение положительно, если DST активен, ноль, если нет, и отрицательно, если информация недоступна. (публичный член) |
Примечания
Стандарт требует только наличия указанных выше членов в определенном порядке. Реализации обычно добавляют к этой структуре больше данных.
-
Диапазон позволяет положительную високосную секунду. Две високосных секунды в одной минуте не допускаются (диапазон
[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); // note implicit trailing '\n'
std::cout << "sizeof(std::tm) = " << sizeof(std::tm) << '\n'
<< "sum of sizes of standard members = "
<< sizeof(tm.tm_sec) +
sizeof(tm.tm_min) +
sizeof(tm.tm_hour) +
sizeof(tm.tm_mday) +
sizeof(tm.tm_mon) +
sizeof(tm.tm_year) +
sizeof(tm.tm_wday) +
sizeof(tm.tm_yday) +
sizeof(tm.tm_isdst) << '\n';
}Возможный вывод:
Sat Jan 1 00:00:00 2022 sizeof(std::tm) = 56 sum of sizes of standard members = 36
См. также
| преобразует время с момента эпохи в календарное время, выраженное как местное время (функция) |
|
| преобразует время с момента эпохи в календарное время, выраженное как Всемирное координированное время (функция) |
|
Документация на C для tm |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/chrono/c/tm