Compartir vía


Clase month

Representa un mes de un año. Por ejemplo, julio.

Sintaxis

class month; // C++20

Comentarios

Normalmente month contiene los valores en el intervalo [1, 12]. También puede contener valores no negativos fuera de este intervalo. Consulte Constantes de month más abajo para saber qué constantes se pueden usar con la clase month.

Miembros

Nombre Descripción
Constructores Construya un elemento month.
ok Compruebe que el valor del mes está en el intervalo válido [1,12].
operator++ Incrementa el month.
operator+= Suma el número especificado de meses a este month.
operator-- Disminuye este month.
operator-= Resta el número especificado de meses de este month.
operator unsigned Obtiene el valor de month.

No miembros

Nombre Descripción
from_stream Analiza un month desde la secuencia especificada con el formato indicado.
operator+ Agrega el número especificado de meses a este month, devolviendo una nueva instancia month.
operator- Resta el número especificado de meses de este mes. Devuelve una nueva instancia de month.
operator== Determina si dos meses son iguales.
operator<=> Compara este mes con otro mes. El compilador sintetiza los operadores >, >=, <=, <, !=.
operator<< Genera un elemento month en la secuencia especificada.

Requisitos

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

Espacio de nombres: std::chrono

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

Constructores

Construya un elemento month.

1) month() = default;
2) explicit constexpr month(unsigned m) noexcept;

Parámetros

m
Construye un objeto month con el valor m.

Comentarios

1) El constructor predeterminado no inicializa el valor del día.
2) Construye un elemento month con el valor del día inicializado en m.

ok

Compruebe si el valor almacenado en esta instancia de month se encuentra en el intervalo válido.

constexpr bool ok() const noexcept;

Valor devuelto

true si el valor del mes está en el intervalo [1,12]. En caso contrario, es false.

operator++

Incremente el valor del mes.

1) constexpr month& operator++() noexcept;
2) constexpr month operator++(int) noexcept;

Valor devuelto

1) Una referencia a *this mes después de que se haya incrementado (un incremento postfijo).
2) Una copia de month, antes de que se incrementara (un incremento prefijo).

Ejemplo: operator++

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

using namespace std::chrono;

int main()
{
    month m{ January };
    month m2{4}; // April

    std::cout << m << " " << ++m << "\n"; // constexpr month& operator++() noexcept
    std::cout << m << " " << m++ << "\n"; // constexpr month operator++(int) noexcept
    std::cout << m << "\n";
    std::cout << m2 << "\n";

    return 0;
}
Jan Feb
Feb Feb
Mar
Apr

Comentarios

Si el resultado supera 12, se establece en 1.

operator--

Resta 1 del valor del mes.

1) constexpr month& operator--() noexcept;
2) constexpr month operator--(int) noexcept;

Valor devuelto

1) Una referencia a *this month después de que se haya decrementado (un postfijo decremento).
2) Una copia del antes de month que se haya decrementado (un prefijo decremento).

Ejemplo: operator--

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

using namespace std;
using namespace std::chrono;

int main()
{
    month m{May};

    cout << m << " " << --m << "\n"; // constexpr month& operator++() noexcept
    cout << m << " " << m-- << "\n"; // constexpr month operator++(int) noexcept
    cout << m << "\n";

    return 0;
}
May Apr
Apr Apr
Mar

Comentarios

Si el resultado reducido es menor que 1, se establece en 12.

operator+=

Agregue meses a este month.

constexpr month& operator+=(const months& m) noexcept;

Parámetros

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

Valor devuelto

*this

operator-=

Reste months de este month.

constexpr month& operator-=(const months& m) noexcept;

Parámetros

m
Meses que se van a restar.

Valor devuelto

*this.

operator unsigned

Obtiene el valor month sin firmar.

explicit constexpr operator unsigned() const noexcept;

Valor devuelto

Valor sin firmar de este month

Ejemplo: operator unsigned()

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

using namespace std::chrono;

int main()
{
    month m{July};
    unsigned monthValue = static_cast<unsigned>(m);
    std::cout << monthValue << "\n";

    return 0;
}
7

Constantes de mes

(C++20) El encabezado <chrono> define las siguientes constantes que puede usar con month para mayor comodidad, seguridad de tipos y mantenimiento del código. Estas constantes están dentro del ámbito si std::chrono está dentro del ámbito.

// Calendrical constants
inline constexpr month January{1};
inline constexpr month February{2};
inline constexpr month March{3};
inline constexpr month April{4};
inline constexpr month May{5};
inline constexpr month June{6};
inline constexpr month July{7};
inline constexpr month August{8};
inline constexpr month September{9};
inline constexpr month October{10};
inline constexpr month November{11};
inline constexpr month December{12};

Consulte también

<chrono>
month_day (clase)
month_day_last (clase)
month_weekday (clase)
Clase month_weekday_last