Condividi tramite


Classe month

Rappresenta un mese di un anno. Ad esempio, luglio.

Sintassi

class month; // C++20

Osservazioni:

Un month oggetto contiene in genere i valori nell'intervallo [1, 12]. Può anche contenere valori non negativi all'esterno di questo intervallo. Per le costanti che è possibile usare con la month classe, vedere Costanti month di seguito.

Membri

Nome Descrizione
Costruttori Creare un oggetto month.
ok Verificare che il valore del mese sia compreso nell'intervallo valido [1,12].
operator++ Incrementare l'oggetto month.
operator+= Aggiungere il numero specificato di mesi a questo monthoggetto .
operator-- Decrementare questo monthoggetto .
operator-= Sottrarre il numero specificato di mesi da questo monthoggetto .
operator unsigned Ottenere il month valore.

Membri non membri

Nome Descrizione
from_stream Analizzare un oggetto month dal flusso specificato usando il formato specificato.
operator+ Aggiungere il numero specificato di mesi a questo monthoggetto , restituendo una nuova month istanza.
operator- Sottrarre il numero specificato di mesi da questo mese. Restituisce una nuova istanza di month.
operator== Determinare se due mesi sono uguali.
operator<=> Confrontare questo mese con un altro mese. Gli >, >=, <=, <, != operatori vengono sintetizzati dal compilatore.
operator<< Restituisce un oggetto month nel flusso specificato.

Requisiti

Intestazione: <chrono> (da C++20)

Spazio dei nomi: std::chrono

Opzione del compilatore: /std:c++latest

Costruttori

Creare un oggetto month.

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

Parametri

m
Costruire un month oggetto con il valore m.

Osservazioni:

1) Il costruttore predefinito non inizializza il valore del giorno.
2) Costruire un month oggetto con il valore del giorno inizializzato in m.

ok

Controllare se il valore archiviato in questo month intervallo è valido.

constexpr bool ok() const noexcept;

Valore restituito

true se il valore del mese è compreso nell'intervallo [1,12]. In caso contrario, false.

operator++

Incrementare il valore del mese.

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

Valore restituito

1) Un riferimento al *this mese dopo che è stato incrementato (un incremento del prefisso).
2) Una copia di , prima che monthsia stata incrementata (un incremento del prefisso).

Esempio: 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

Osservazioni:

Se il risultato supera 12, viene impostato su 1.

operator--

Sottrarre 1 dal valore del mese.

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

Valore restituito

1) Un riferimento a *this month dopo che è stato decrementato (decrementazione postfix).
2) Copia dell'oggetto month prima che sia stato decrementato (decremento del prefisso).

Esempio: 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

Osservazioni:

Se il risultato decrementato è minore di 1, viene impostato su 12.

operator+=

Aggiungere mesi a questo monthoggetto .

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

Parametri

m
Numero di mesi da aggiungere.

Valore restituito

*this

operator-=

Sottrarre months da questo monthoggetto .

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

Parametri

m
Mesi da sottrarre.

Valore restituito

*this.

operator unsigned

Ottiene il valore senza month segno.

explicit constexpr operator unsigned() const noexcept;

Valore restituito

Valore senza segno di questo month

Esempio: 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

Costanti mese

(C++20) L'intestazione <chrono> definisce le costanti seguenti che è possibile usare con month per maggiore praticità, sicurezza dei tipi e manutenibilità del codice. Queste costanti sono incluse nell'ambito quando std::chrono si trova nell'ambito.

// 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};

Vedi anche

<chrono>
month_day Classe
month_day_last Classe
month_weekday Classe
Classe month_weekday_last