Classe month
Representa um mês de um ano. Por exemplo, julho.
Sintaxe
class month; // C++20
Comentários
Um month
normalmente contém valores no intervalo [1, 12]. Ele também pode conter valores não negativos fora desse intervalo.
Confira Constantes de meses abaixo para obter constantes que você pode usar com a classe month
.
Membros
Nome | Descrição |
---|---|
Construtores | Construa um month . |
ok |
Verifique se o valor do mês está no intervalo válido [1,12]. |
operator++ |
Incremente o month . |
operator+= |
Adicione o número especificado de meses a esse month . |
operator-- |
Decremente o month . |
operator-= |
Subtraia o número especificado de meses desse month . |
operator unsigned |
Obtenha o valor month . |
Não membros
Nome | Descrição |
---|---|
from_stream |
Analise um month do fluxo fornecido usando o formato especificado. |
operator+ |
Adicione um número especificado de meses a esse month , retornando uma nova instância month . |
operator- |
Subtraia o número especificado de meses desse mês. Retorna uma nova instância de month . |
operator== |
Determine se dois meses são iguais. |
operator<=> |
Compare esse mês com outro mês. Os operadores >, >=, <=, <, != são sintetizados pelo compilador. |
operator<< |
Gerar um month para o fluxo fornecido. |
Requisitos
Cabeçalho: <chrono>
(desde C++20)
Namespace: std::chrono
Opção do compilador: /std:c++latest
Construtores
Construa um month
.
1) month() = default;
2) explicit constexpr month(unsigned m) noexcept;
Parâmetros
m
Construa um month
com valor m
.
Comentários
1) O construtor padrão não inicializa o valor do dia.
2) Construa um month
com o valor do dia inicializado para m
.
ok
Verifique se o valor armazenado neste month
está no intervalo válido.
constexpr bool ok() const noexcept;
Valor retornado
true
se o valor do mês estiver no intervalo [-1,12]. Caso contrário, false
.
operator++
Incremente o valor do mês.
1) constexpr month& operator++() noexcept;
2) constexpr month operator++(int) noexcept;
Valor retornado
1) Uma referência ao mês *this
depois que ele foi incrementado (um incremento de pós-fixação).
2) Uma cópia do month
, antes de ter sido incrementado (um incremento de prefixo).
Exemplo: 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
Comentários
Se o resultado exceder 12, ele será definido como 1.
operator--
Subtraia 1 do valor do mês.
1) constexpr month& operator--() noexcept;
2) constexpr month operator--(int) noexcept;
Valor retornado
1) Uma referência a *this
month
depois de ter sido decrementado (um decremento pós-fixado).
2) Uma cópia do antes de ter sido decrementado (um decréscimo de prefixo).month
Exemplo: 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
Comentários
Se o resultado reduzido for menor que -1, ele será definido como 12.
operator+=
Adicione meses a esse month
.
constexpr month& operator+=(const months& m) noexcept;
Parâmetros
m
O número de meses a serem adicionados.
Valor retornado
*this
operator-=
Subtraia months
desse month
.
constexpr month& operator-=(const months& m) noexcept;
Parâmetros
m
Os meses a serem subtraídos.
Valor retornado
*this
.
operator unsigned
Obtenha o valor sem sinal month
.
explicit constexpr operator unsigned() const noexcept;
Valor retornado
O valor sem sinal desse month
Exemplo: 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 mês
(C++20) O cabeçalho <chrono>
define as seguintes constantes que você pode usar com month
para maior conveniência, segurança de tipos e facilidade de manutenção do seu código. Essas constantes estão no escopo quando std::chrono
está no escopo.
// 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};
Confira também
<chrono>
Classe month_day
Classe month_day_last
Classe month_weekday
month_weekday_last
classe