std::chrono:: year_month_day_last
|
Определено в заголовке
<chrono>
|
||
|
class
year_month_day_last
;
|
(начиная с C++20) | |
Класс
year_month_day_last
представляет последний день конкретного года и месяца. Это полевая точка времени с разрешением
std::chrono::days
, с ограничением, что может представлять только последний день месяца.
std::chrono::years - и std::chrono::months -ориентированная арифметика поддерживается напрямую. Неявное преобразование в std::chrono::sys_days позволяет эффективно выполнять std::chrono::days -ориентированные арифметические операции.
year_month_day_last
является
TriviallyCopyable
StandardLayoutType
.
Содержание |
Функции-члены
создает объект
year_month_day_last
(публичная функция-член) |
|
|
изменяет временную точку на некоторое количество месяцев или лет
(публичная функция-член) |
|
|
предоставляет доступ к полям этого объекта
(публичная функция-член) |
|
|
преобразует в
std::chrono::time_point
(публичная функция-член) |
|
|
проверяет, представляет ли этот объект корректную дату
(публичная функция-член) |
Функции, не являющиеся членами класса
|
(C++20)
|
сравнивает два значения
year_month_day_last
(функция) |
|
(C++20)
|
добавляет или вычитает
year_month_day_last
и некоторое количество лет или месяцев
(функция) |
|
(C++20)
|
выводит
year_month_day_last
в поток
(шаблон функции) |
Вспомогательные классы
поддержка форматирования для
year_month_day_last
(специализация шаблона класса) |
|
|
поддержка хеширования для
std::chrono::year_month_day_last
(специализация шаблона класса) |
Пример
#include <chrono> #include <iostream> int main() { const auto ymd = std::chrono::year_month_day { std::chrono::floor<std::chrono::days>(std::chrono::system_clock::now()) }; const std::chrono::year_month_day_last ymdl { ymd.year(), ymd.month() / std::chrono::last }; std::cout << "Последний день текущего месяца (" << ymdl << ") это: " << std::chrono::year_month_day{ymdl}.day() << '\n'; // Объект 'last' может быть размещен везде, где допустимо размещение 'day': using namespace std::chrono; constexpr std::chrono::year_month_day_last ymdl1 = 2023y / February / last, ymdl2 = last / February / 2023y, ymdl3 = February / last / 2023y; static_assert(ymdl1 == ymdl2 && ymdl2 == ymdl3); }
Возможный вывод:
Последний день текущего месяца (2023/Aug/last) это: 31
Смотрите также
|
(C++20)
|
представляет определённый
year
,
month
и
day
(класс) |