Clase year_month_day
Representa un mes, año y día.
Sintaxis
class year_month_day; // C++20
Miembros
Nombre | Descripción |
---|---|
Constructores | Construyen un elemento year_month_day |
day |
Devuelve el día. |
month |
Devuelve el mes. |
ok |
Verifica que los valores year y month están en el intervalo válido. |
operator+= |
Suma el número especificado de meses o años. |
operator-= |
Reste el número especificado de meses o años. |
operator local_days |
Obtiene el recuento de días desde la época system_clock hasta year_month_day como local_days . |
operator sys_days |
Obtiene el recuento de días desde la época system_clock hasta year_month_day como sys_days . |
year |
Devuelve el año. |
No miembros
Nombre | Descripción |
---|---|
from_stream |
Analiza un year_month_day desde la secuencia especificada con el formato especificado |
operator+ |
Sume meses o años. |
operator- |
Reste meses o años. |
operator== |
Determine si dos valores year_month_day son iguales. |
operator<=> |
Compare dos valores year_month_day . El compilador sintetiza los operadores >, >=, <=, <, != . |
operator<< |
Genera un year_month_day a una secuencia. |
Requisitos
Encabezado: <chrono>
(desde C++20)
Espacio de nombres: std::chrono
Opción del compilador: /std:c++latest
Constructores
Construya un elemento year_month_day
.
1) year_month_day() = default;
2) constexpr year_month_day(const year& y, const month& m, day& d) noexcept;
3) constexpr year_month_day(const year_month_day_last& ymdl) noexcept;
4) constexpr year_month_day(const sys_days& dp) noexcept;
5) constexpr explicit year_month_day(const local_days& dp) noexcept;
Parámetros
d
Un valor day
.
dp
Un valor sys_days
o local_days
.
m
Un valor month
.
y
Valor year
.
ymdl
Un valor year_month_day_last
.
Comentarios
1) El constructor predeterminado no inicializa el mes o el día.
2) Construye un year_month_day
objeto con el año, el mes y el día especificados.
3) Construye un year_month_day
objeto con el año, mes y día especificados a partir de ymdl
4) Construye un year_month_day
con la misma fecha que dp
.
5) Construye un year_month_day
objeto con la misma fecha que dp
pero como si se construyese por year_month_day(sys_days(dp.time_since_epoch()))
.
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
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_day ymd{ April / 4 / 1975 };
std::cout << ymd;
return 0;
}
1975-04-04
day
Obtiene el día.
constexpr day day() const noexcept;
Valor devuelto
Valor de tipo day
.
month
Obtiene el mes.
constexpr month month() const noexcept;
Valor devuelto
Valor de tipo month
.
operator local_days
Obtiene el recuento de días desde la época system_clock
(1/1/1970) hasta year_month_day
como local_days
.
constexpr explicit operator local_days() const noexcept;
Valor devuelto
Si es ok()
, devuelve un recuento de días como local_days{sys_days{*this}.time_since_epoch()}
.
operator sys_days
Obtiene el recuento de días desde la época system_clock
(1/1/1970) hasta year_month_day
como sys_days
.
constexpr operator sys_days() const noexcept;
Valor devuelto
Si es ok()
, devuelve un objeto sys_days
que contiene un recuento de días desde la época sys_days
(1/1/1970) hasta la fecha que se mantiene en year_month_day
. El valor será negativo si la fecha de year_month_day
es anterior a la época sys_days
.
Si el año y el mes de year_month_day
son ok()
, devuelve sys_days{year/month/1d} + (day-1d)
. De lo contrario, no se especifica el valor devuelto.
Un sys_days
en el intervalo [days{-12687428}
, days{11248737}
] se puede convertir en year_month_day
y volver a tener el mismo valor.
year
Obtiene el año.
constexpr year year() const noexcept;
Valor devuelto
El year
.
ok
Comprueba si el valor de año y mes almacenado en este year_month_day
se encuentren en el intervalo válido. Garantiza que el día se encuentra en el intervalo [1d, (y/m/last).day()], teniendo en cuenta años bisiestos y el número diferente de días de cada mes.
constexpr bool ok() const noexcept;
Valor devuelto
true
si los valores de año, mes y día year_month_day
están en el intervalo válido. En caso contrario, es false
.
operator+=
Agrega meses o años a este year_month_day
.
1) constexpr year_month_day& operator+=(const months& dm) noexcept;
2) constexpr year_month_day& operator+=(const years& dy) noexcept;
Parámetros
dm
Número de meses que se van a agregar.
dy
Número de años que se van a agregar.
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 ymd{June / 1d / 2021y};
std::cout << ymd << '\n';
ymd += months{2};
ymd += years{1};
std::cout << ymd;
return 0;
}
2021-06-01
2022-08-01
operator-=
Resta meses o años de este year_month_day
.
1) constexpr year_month_day& operator-=(const months& dm) noexcept;
2) constexpr year_month_day& operator-=(const years& dy) noexcept;
Parámetros
dm
Número de meses que se van a restar.
dy
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 ymd{June / 1d / 2021y};
std::cout << ymd << '\n';
ymd -= months{2};
ymd -= years{1};
std::cout << ymd;
return 0;
}
2021-06-01
2020-04-01
Consulte también
<chrono>
year
year_month
year_month_day_last
year_month_weekday
year_month_weekday_last
operator/
Referencia de archivos de encabezado