Espacios de nombres
Variantes

std::chrono::year_month_day_last

De cppreference.com
 
 
Biblioteca de servicios
Apoyo del lenguaje
Apoyo de tipos (tipos básicos, RTTI)
Macros de prueba de característica de la biblioteca (C++20)
Servicios de programa
Funciones variádicas
Apoyo de corrutinas (C++20)
Apoyo de contratos (C++26)
Comparación de tres vías (C++20)
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

 
 
 
Definido en el archivo de 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 de un mes específicos. Es un punto de tiempo basado en campos, con una resolución de std::chrono::days, sujeto al límite de que solo puede representar el último día de un mes.

Se admite directamente la aritmética orientada a años (std::chrono::years) y meses (std::chrono::months). Una conversión implícita a días (std::chrono::sys_days) permite que la aritmética orientada a días (std::chrono::days) se ejecute eficientemente.

year_month_day_last es un tipo TriviallyCopyable StandardLayoutType.

Funciones miembro

Construye un objeto de tipo year_month_day_last.
(función miembro pública) [editar]
Modifica el punto de tiempo por algún número de meses o años.
(función miembro pública) [editar]
Accede a los datos miembro de este objeto.
(función miembro pública) [editar]
Convierte a un objeto std::chrono::time_point.
(función miembro pública) [editar]
Verifica si este objeto representa una fecha válida.
(función miembro pública) [editar]

Funciones no miembro

Compara dos valores de tipo year_month_day_last.
(función) [editar]
Suma o resta de un objeto year_month_day_last algún número de años o meses.
(función) [editar]
Emite un objeto year_month_day_last en un flujo.
(plantilla de función) [editar]

Clases auxiliares

Especialización de std::formatter que formatea un objeto de tipo year_month_day_last conforme al formato suministrado.
(especialización de plantilla de clase) [editar]

Ejemplo

#include <iostream>
#include <chrono>

// hasta que el compilador en línea admita emitir the year_month_day_last:
std::ostream& operator<< (std::ostream& os, std::chrono::year_month_day_last ymdl) {
    return os << static_cast<int>(ymdl.year()) << '/' 
              << static_cast<unsigned>(ymdl.month()) << '/'
              << static_cast<unsigned>(ymdl.day());
}

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 << "La fecha del último día de este mes es: " << ymdl << '\n';


    // El objeto `last` puede ubicarse dondequiera que sea legal ubicar un objeto `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 );
}

Posible salida:

La fecha del último día de este mes es: 2021/11/30

Véase también

Representa un año, mes y día específicos
(clase) [editar]