Clase month
Representa un mes de un año. Por ejemplo, julio.
class month; // C++20
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
.
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 . |
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. |
Encabezado: <chrono>
(desde C++20)
Espacio de nombres: std::chrono
Opción del compilador: /std:c++latest
Construya un elemento month
.
1) month() = default;
2) explicit constexpr month(unsigned m) noexcept;
m
Construye un objeto month
con el valor m
.
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
.
Compruebe si el valor almacenado en esta instancia de month
se encuentra en el intervalo válido.
constexpr bool ok() const noexcept;
true
si el valor del mes está en el intervalo [1,12]. En caso contrario, es false
.
Incremente el valor del mes.
1) constexpr month& operator++() noexcept;
2) constexpr month operator++(int) noexcept;
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).
// 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
Si el resultado supera 12, se establece en 1.
Resta 1 del valor del mes.
1) constexpr month& operator--() noexcept;
2) constexpr month operator--(int) noexcept;
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).
// 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
Si el resultado reducido es menor que 1, se establece en 12.
Agregue meses a este month
.
constexpr month& operator+=(const months& m) noexcept;
m
Número de meses que se van a agregar.
*this
Reste months
de este month
.
constexpr month& operator-=(const months& m) noexcept;
m
Meses que se van a restar.
*this
.
Obtiene el valor month
sin firmar.
explicit constexpr operator unsigned() const noexcept;
Valor sin firmar de este month
// 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
(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};
<chrono>
month_day
(clase)
month_day_last
(clase)
month_weekday
(clase)
Clase month_weekday_last