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;

Retornar valor

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;

Retornar valor

1) Uma referência ao mês *thisdepois 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;

Retornar valor

1) Uma referência a *thismonthdepois dele ele ter sido reduzido (uma redução pós-fixada).
2) Uma cópia de month, antes de ter sido reduzido (uma redução de prefixo).

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.

Retornar valor

*this

operator-=

Subtraia months desse month.

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

Parâmetros

m
Os meses a serem subtraídos.

Retornar valor

*this.

operator unsigned

Obtenha o valor sem sinal month.

explicit constexpr operator unsigned() const noexcept;

Retornar valor

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