Compartir vía


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