Namespaces
Variants

std::chrono:: year_month_day_last

From cppreference.net
Definido en el encabezado <chrono>
class year_month_day_last ;
(desde C++20)

La clase year_month_day_last representa el último día de un año y mes específicos. Es un punto temporal basado en campos, con una resolución de std::chrono::days , sujeto a la limitación de que solo puede representar el último día de un mes.

std::chrono::years - y la aritmética orientada a std::chrono::months están soportadas directamente. Una conversión implícita a std::chrono::sys_days permite realizar eficientemente aritmética orientada a std::chrono::days .

year_month_day_last es un TriviallyCopyable StandardLayoutType .

Contenidos

Funciones miembro

construye un objeto year_month_day_last
(función miembro pública)
modifica el punto temporal por cierta cantidad de meses o años
(función miembro pública)
accede a los campos de este objeto
(función miembro pública)
convierte a un std::chrono::time_point
(función miembro pública)
verifica si este objeto representa una fecha válida
(función miembro pública)

Funciones no miembro

compara dos valores de year_month_day_last
(función)
suma o resta un year_month_day_last y cierta cantidad de años o meses
(función)
(C++20)
envía un year_month_day_last a un flujo
(plantilla de función)

Clases auxiliares

soporte de formato para year_month_day_last
(especialización de plantilla de clase)
soporte de hash para std::chrono::year_month_day_last
(especialización de plantilla de clase)

Ejemplo

#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 << "The last day of present month (" << ymdl << ") is: "
              << std::chrono::year_month_day{ymdl}.day() << '\n';
    // The 'last' object can be placed wherever it is legal to place a '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);
}

Salida posible:

The last day of present month (2023/Aug/last) is: 31

Véase también

representa un year , month y day específicos
(clase)