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