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/w/cpp/chrono/year_month_day

Spec-Zone.ru

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