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 month oggetto . |
operator-- |
Decrementare questo month oggetto . |
operator-= |
Sottrarre il numero specificato di mesi da questo month oggetto . |
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 month oggetto , 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 month
sia 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 month
oggetto .
constexpr month& operator+=(const months& m) noexcept;
Parametri
m
Numero di mesi da aggiungere.
Valore restituito
*this
operator-=
Sottrarre months
da questo month
oggetto .
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