Clase year_month_weekday
Representa un año, mes y día de la semana del mes específicos.
Sintaxis
class year_month_weekday; // C++20
Comentarios
year_month_weekday
admite la aritmética orientada a años y meses, pero no aritmética orientada a días. Para usar la aritmética orientada a días, use la conversión sys_days
para convertir a sys_days
, que sí admite la aritmética orientada a días.
year_month_weekday
es un tipo de clase de diseño estándar y fácil de copiar.
Miembros
Nombre | Descripción |
---|---|
Constructor |
Crea un objeto year_month_weekday con el mes y día de la semana especificados. |
index |
Obtiene el índice del día de la semana. |
month |
Obtiene valor del mes. |
ok |
Compruebe si year_month_weekday es 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_weekday como local_days . |
operator sys_days |
Obtiene el recuento de días desde la época system_clock hasta year_month_weekday como sys_days . |
weekday |
Obtiene el día de la semana. |
weekday_indexed |
Obtiene el objeto [weekday_indexed ] almacenado en este objeto year_month_weekday . |
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_weekday son iguales. |
operator<< |
Genera un elemento year_month_weekday en la secuencia especificada. |
Requisitos
Encabezado: <chrono>
(desde C++20)
Espacio de nombres: std::chrono
Opción del compilador: /std:c++latest
Constructor
Construye un objeto year_month_weekday
.
// 1)
year_month_weekday() = default
// 2)
constexpr year_month_weekday(const year& y, const month& m, const weekday_indexed& wdi) noexcept;
// 3)
constexpr explicit year_month_weekday(const local_days& dp) noexcept;
// 4)
constexpr year_month_weekday(const sys_days& dp) noexcept;
Parámetros
m
Valor de tipo month
.
dp
Un objeto sys_days
o local_days
.
wdi
Valor de tipo weekday
.
y
Valor de tipo year
.
Comentarios: Constructor
1) El constructor predeterminado no inicializa ninguno de los campos.
2) Construye un objeto year_month_weekday
que corresponde al year
, month
y weekday_indexed
especificados.
3) Construye un objeto year_month_weekday
que corresponde a la fecha representada por sys_days{dp.time_since_epoch()}
.
4) Construye un objeto year_month_weekday
que corresponde a la fecha representada por dp
. En cualquier year_month_weekday
(ymdl) en el que ok()
es true
, la comparación con year_month_weekday{sys_days{ymdl}}
mediante el operador operator==
será true
.
Para obtener información sobre la sintaxis de C++20 usada para especificar fechas, consulte operator/
Ejemplo: Creación de un objeto year_month_weekday
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_weekday ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
index
Obtenga el índice de semana del día de la semana en este year_month_weekday
.
constexpr unsigned index() const noexcept;
Valor devuelto
El índice del día de la semana. Por ejemplo, si el día de la semana fuera el primer miércoles de la semana, el índice sería 1.
month
Obtiene valor del mes.
constexpr month month() const noexcept;
Valor devuelto
Valor de tipo month
.
ok
Comprueba si el valor almacenado en este elemento year_month_weekday
es válido. Los objetos year
, month
y weekday_index
almacenados en este objeto year_month_weekday
deben ser todos ok
para que esta función devuelva true
. De lo contrario, devuelve false
.
constexpr bool ok() const noexcept;
Valor devuelto
true
si el valor de year_month_weekday
es válido. En caso contrario, es false
.
Un objeto year_month_weekday
es válido si tanto month
como el valor de weekday_indexed
son válidos.
operator+=
Agrega meses o años a este year_month_weekday
.
1) constexpr year_month_weekday& operator+=(const months& m) noexcept;
2) constexpr year_month_weekday& 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 van a agregar.
Valor devuelto
*this
, que refleja el resultado de la suma.
Ejemplo: operator+=
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_weekday ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
ymw += months{1};
ymw += years{1};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
1998/Feb/Wed[1]
operator-=
Resta meses o años de este year_month_weekday
.
1) constexpr year_month_weekday& operator-=(const months& m) noexcept;
2) constexpr year_month_weekday& 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_weekday ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
ymw -= months{1};
ymw -= years{1};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
1995/Dec/Wed[1]
operator local_days
Obtiene el recuento de días desde la época system_clock
(1/1/1970) hasta year_month_weekday
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()}
. De lo contrario, no se especifica el valor devuelto.
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 representa la fecha que es (index() - 1) * 7
días posterior al primer weekday()
de year()/month()
. Si index()
es 0
, el valor de sys_days
devuelto representa la fecha que es 7 días anterior al primer weekday()
de year()/month()
.
weekday
Obtiene el objeto weekday
almacenado en el weekday_indexed
almacenado en este objeto year_month_weekday
.
constexpr weekday weekday() const noexcept;
Valor devuelto
Valor de tipo weekday
.
weekday_indexed
Obtiene el objeto weekday_indexed
almacenado en este objeto year_month_weekday
.
constexpr weekday_indexed weekday_indexed() const noexcept;
Valor devuelto
Valor de tipo weekday_indexed
.
year
Obtiene el valor del año.
constexpr year year() const noexcept;
Valor devuelto
Valor de tipo year
.
Consulte también
<chrono>
year
year_month
year_month_day
year_month_day_last
year_month_weekday_last
operator/
Referencia de archivos de encabezado