Compartir vía


Clase year_month_day_last

Representa el último día de un año y un mes específicos.

year_month_day_last admite la aritmética de meses y años, pero no la de días. Para realizar la aritmética orientada a días, convierta year_month_day_last en sys_days.

Sintaxis

class year_month_day_last; // C++20

Miembros

Nombre Descripción
Constructores Construyen un elemento year_month_day_last
day Obtiene el último día del mes/año.
month Obtiene el mes.
month_day_last Obtiene el valor month_day_last almacenado en este year_month_day_last.
ok Verifica que los valores year y month están en el intervalo válido.
operator+= Agrega meses o años a este year_month_day_last.
operator-= Resta meses o años de este year_month_day_last.
operator local_days Obtiene el recuento de días desde la época sys_days hasta year_month_day_last como local_days.
operator sys_days Obtiene el recuento de días desde la época sys_days hasta year_month_day_last como sys_days.
year Obtiene el año.

No miembros

Nombre Descripción
operator+ Sume meses o años.
operator- Reste meses o años.
operator== Determine si dos valores year_month_day_last son iguales.
operator<=> Compare dos valores year_month_day_last. El compilador sintetiza los operadores >, >=, <=, <, !=.
operator<< Genera un year_month_day_last a una secuencia.

Requisitos

Encabezado: <chrono> (desde C++20)

Espacio de nombres: std::chrono

Opción del compilador: /std:c++latest

Constructores

Construya un year_month_day_last para un mes y año especificados.

constexpr year_month_day_last(const year& y, const month_day_last& mdl) noexcept;

Parámetros

mdl El valor de mes de month_day_last se almacena en el objeto construido year_month_day_last.

y
El valor year se almacena en el objeto construido year_month_day_last.

Comentarios

Para obtener información sobre la sintaxis de C++20 usada para especificar fechas, consulte operator/

Ejemplo: Creación de un objeto year_month_day_last

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month_day_last ymdl{ April / last / 1975 };
    std::cout << ymdl;

    return 0;
}
1975/Apr/last

day

Si ok() es true, devuelve un day que representa el último día del año, mes representado por este year_month_day_last.

constexpr day day() const noexcept;

Valor devuelto

Si ok() es true, devuelve un day que representa el último día del año y mes representado por este *this. De lo contrario, el valor devuelto es indeterminado.

local_days

Obtenga el mes, el día y el año en este year_month_day_last como un recuento de días.

constexpr explicit operator local_days() const noexcept;

Valor devuelto

local_days{sys_days{*this}.time_since_epoch()}

Ejemplo

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month_day_last ymdl{ June / last / 2021 };
    auto ld = local_days(ymdl);
    std::cout << ld.time_since_epoch();

    return 0;
}
18808d

month

Obtenga el valor del mes almacenado.

constexpr month month() const noexcept;

Valor devuelto

Valor de tipo month.

month_day_last

Obtiene el valor month_day_last almacenado en year_month_day_last.

constexpr month_day_last month_day_last() const noexcept;

Valor devuelto

El valor month_day_last almacenado en year_month_day_last.

operator sys_days

Obtenga el mes, el día y el año en este year_month_day_last como un recuento de días de la época para el reloj del sistema.

constexpr explicit operator sys_days() const noexcept;

Valor devuelto

Devuelve sys_days{this->year()/this->month()/this->day()}

Ejemplo

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month_day_last ymdl{ June / last / 2021 };
    auto sd = sys_days(ymdl);
    std::cout << sd.time_since_epoch();

    return 0;
}
18808d

year

Obtiene el año.

constexpr year year() const noexcept;

Valor devuelto

El year.

ok

Compruebe si el valor de year y month_day_last almacenado en este year_month_day_last se encuentran en el intervalo válido.

constexpr bool ok() const noexcept;

Valor devuelto

true si el valor almacenado year y month_day_last en este year_month_day_last se encuentran en el intervalo válido. En caso contrario, es false.

operator+=

Agrega meses o años a este year_month_day_last.

1) constexpr year_month_day_last& operator+=(const months& m) noexcept;
2) constexpr year_month_day_last& operator+=(const years& y) noexcept;

Parámetros

m
Número de meses que se van a agregar.

y
Número de años que se va a sumar.

Valor devuelto

*this, que refleja el resultado de la adición.

Ejemplo: operator+=

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month_day_last ymdl{ April / last / 1975 };

    std::cout << ymdl << '\n';

    ymdl += months{1};
    ymdl += years{1};

    std::cout << ymdl;
    
    return 0;
}
1975/Apr/last
1976/May/last

operator-=

Resta meses o años de este year_month_day_last.

1) constexpr year_month_day_last& operator-=(const months& m) noexcept;
2) constexpr year_month_day_last& operator-=(const years& y) noexcept;

Parámetros

m
Número de meses que se van a restar.

y
Número de años que se va a restar.

Valor devuelto

*this, que refleja el resultado de la resta.

Ejemplo: operator-=

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month_day_last ymdl{ April / last / 1975 };

    std::cout << ymdl << '\n';

    ymdl -= months{1};
    ymdl -= years{1};

    std::cout << ymdl;
    
    return 0;
}
1975/Apr/last
1974/Mar/last

Consulte también

<chrono>
year
year_month
year_month_day
year_month_weekday
year_month_weekday_last
operator/
Referencia de archivos de encabezado