Namespaces
Variants

std::chrono:: year_month_day

From cppreference.net
Определено в заголовке <chrono>
class year_month_day ;
(начиная с C++20)

Класс year_month_day представляет конкретный год, месяц и день. Это полевая временная точка с разрешением std::chrono::days . Арифметика, ориентированная на std::chrono::years и std::chrono::months , поддерживается напрямую. Неявное преобразование в std::chrono::sys_days и из него позволяет эффективно выполнять арифметику, ориентированную на std::chrono::days .

year_month_day является TriviallyCopyable StandardLayoutType .

Содержание

Функции-члены

создает объект year_month_day
(публичная функция-член)
изменяет временную точку на указанное количество месяцев или лет
(публичная функция-член)
предоставляет доступ к году, месяцу и дню, хранящимся в этом объекте
(публичная функция-член)
преобразует в std::chrono::time_point
(публичная функция-член)
проверяет, представляет ли year_month_day корректную дату
(публичная функция-член)

Функции, не являющиеся членами класса

сравнивает два значения year_month_day
(функция)
добавляет или вычитает year_month_day и некоторое количество лет или месяцев
(функция)
(C++20)
выводит year_month_day в поток
(шаблон функции)
парсит year_month_day из потока согласно предоставленному формату
(шаблон функции)

Вспомогательные классы

поддержка форматирования для year_month_day
(специализация шаблона класса)
поддержка хеширования для std::chrono::year_month_day
(специализация шаблона класса)

Пример

#include <chrono>
#include <iostream>
int main()
{
    const std::chrono::time_point now{std::chrono::system_clock::now()};
    const std::chrono::year_month_day ymd{std::chrono::floor<std::chrono::days>(now)};
    std::cout << "Current Year: " << static_cast<int>(ymd.year()) << ", "
                 "Month: " << static_cast<unsigned>(ymd.month()) << ", "
                 "Day: " << static_cast<unsigned>(ymd.day()) << "\n"
                 "ymd: " << ymd << '\n';
}

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

Current Year: 2023, Month: 9, Day: 4
ymd: 2023-09-04