Пространства имён
Варианты
Действия

std::chrono::year_month_day_last

Материал из cppreference.com
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
 
 
<tbody> </tbody>
Определено в заголовочном файле <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
(public функция-элемент) [править]
изменяет момент времени на некоторое количество месяцев или лет
(public функция-элемент) [править]
обращается к полям этого объекта
(public функция-элемент) [править]
преобразуется в std::chrono::time_point
(public функция-элемент) [править]
проверяет, представляет ли этот объект действительную дату
(public функция-элемент) [править]

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

сравнивает два значения year_month_day_last
(функция) [править]
добавляет или вычитает year_month_day_last и некоторое количество лет или месяцев
(функция) [править]
выводит 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 and ymdl2 == ymdl3);
}

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

Последний день текущего месяца (2023/Aug/last) равен: 31

Смотрите также

представляет конкретный год, месяц и день
(класс) [править]