Spec-Zone.ru › C++

std::chrono::year_month_day

Определён в заголовочном файле <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
(открытая функция-член)
operator+=operator-=
изменяет точку времени на заданное число месяцев или лет
(открытая функция-член)
yearmonthday
получает год, месяц и день, хранящиеся в этом объекте
(открытая функция-член)
operator sys_daysoperator local_days
преобразует в std::chrono::time_point
(открытая функция-член)
ok
проверяет, представляет ли year_month_day допустимую дату
(открытая функция-член)

Функции вне класса

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

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

std::formatter<std::chrono::year_month_day>
(C++20)
поддержка форматирования для year_month_day
(специализация шаблона класса)
std::hash<std::chrono::year_month_day>
(C++26)
поддержка хеширования для 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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/chrono/year_month_day

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API