Namespaces
Variants

std::chrono:: year_month_day

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

La clase year_month_day representa un año, mes y día específicos. Es un punto temporal basado en campos, con una resolución de std::chrono::days . Se admite directamente aritmética orientada a std::chrono::years y std::chrono::months . Una conversión implícita hacia y desde std::chrono::sys_days permite realizar aritmética orientada a std::chrono::days de manera eficiente.

year_month_day es un TriviallyCopyable StandardLayoutType .

Contenidos

Funciones miembro

construye un year_month_day
(función miembro pública)
modifica el punto temporal por cierto número de meses o años
(función miembro pública)
accede al año, mes y día almacenados en este objeto
(función miembro pública)
convierte a un std::chrono::time_point
(función miembro pública)
verifica si el year_month_day representa una fecha válida
(función miembro pública)

Funciones no miembro

compara dos valores de year_month_day
(función)
suma o resta un year_month_day y cierta cantidad de años o meses
(función)
(C++20)
envía un year_month_day a un flujo
(plantilla de función)
analiza un year_month_day desde un flujo según el formato proporcionado
(plantilla de función)

Clases auxiliares

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

Ejemplo

#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';
}

Salida posible:

Current Year: 2023, Month: 9, Day: 4
ymd: 2023-09-04