Classe year
Rappresenta un anno nel calendario gregoriano.
Sintassi
class year; // C++20
Osservazioni:
Un year
oggetto può contenere un valore annuale compreso tra -32767 e 32767.
Membri
Nome | Descrizione |
---|---|
Costruttori | Costruire un oggetto year |
is_leap |
Determinare se l'anno è bisestile. |
max |
Restituisce il valore dell'anno più grande possibile. |
min |
Restituisce il valore dell'anno più piccolo possibile. |
ok |
Verificare che il valore dell'anno sia compreso nell'intervallo valido [-32767, 32767]. |
operator+ |
Più unario. |
operator++ |
Incrementare l'anno. |
operator+= |
Aggiungere il numero specificato di anni a questo year oggetto . |
operator- |
Meno unario. |
operator-- |
Decrementare l'anno. |
operator-= |
Sottrarre il numero specificato di anni da questo year oggetto . |
operator int |
Ottenere il year valore. |
Membri non membri
Nome | Descrizione |
---|---|
from_stream |
Analizzare un oggetto year da un flusso usando il formato specificato |
operator+ |
Aggiungere anni. |
operator- |
Sottrae anni. |
operator== |
Determinare se due anni sono uguali. |
operator<=> |
Confrontarlo year con un altro year oggetto . Gli >, >=, <=, <, != operatori vengono sintetizzati dal compilatore. |
operator<< |
Restituisce un oggetto year nel flusso specificato. |
operator""y |
Creare un valore year letterale. |
Requisiti
Intestazione: <chrono>
(da C++20)
Spazio dei nomi: std::chrono
Opzione del compilatore: /std:c++latest
Costruttori
Creare un oggetto year
.
1) year() = default;
2) explicit constexpr year(unsigned y) noexcept;
Parametri
y
Costruire un year
oggetto con il valore y
.
Osservazioni:
1) Il costruttore predefinito non inizializza il year
valore.
2) Costruire un year
oggetto con il valore specificato.
Esempio: Creare un oggetto year
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{2020};
year y2 = 2021y;
std::cout << y << ", " << y2;
return 0;
}
2020, 2021
is_leap
Controllare se il valore archiviato in questo year
intervallo è valido.
constexpr bool is_leap() const noexcept;
Valore restituito
true
se il valore dell'anno è un anno bisestile. In caso contrario, false
.
Un anno bisestile è un anno divisibile per 4 ma non 100---o è divisibile per 400.
max
Restituisce l'anno più grande possibile.
static constexpr year max() noexcept;
Valore restituito
year{32767}
min
Restituisce l'anno più piccolo possibile.
static constexpr year min() noexcept;
Valore restituito
year{-32767}
ok
Controllare se il valore archiviato in questo year
intervallo è valido.
constexpr bool ok() const noexcept;
Valore restituito
true
se il valore dell'anno è compreso nell'intervallo [-32676, 32767]. In caso contrario, false
.
operator+
Applica plus unario.
constexpr year operator+() const noexcept;
Valore restituito
Restituisce *this
.
Esempio: unario operator+
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{-1};
std::cout << +y;
return 0;
}
-0001
operator++
Aggiungere 1 al valore dell'anno.
1) constexpr year& operator++() noexcept;
2) constexpr year operator++(int) noexcept;
Valore restituito
1) Restituisce il riferimento a quest'anno dopo l'incremento (incremento del prefisso).
2) Restituisce una copia di year
, prima che sia stata incrementata (un incremento del prefisso).
Esempio: operator++
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{2021};
std::cout << y << " " << ++y << "\n"; // constexpr year& operator++() noexcept
std::cout << y << " " << y++ << "\n"; // constexpr year operator++(int) noexcept
std::cout << y << "\n";
return 0;
}
2021 2022
2022 2022
2023
Osservazioni:
Se il risultato incrementato supera 32767, passa a -32768
operator-
Meno unario. Nega l'oggetto year
.
constexpr year operator-() const noexcept; // C++20
Valore restituito
Restituisce una copia negata dell'oggetto year
.
Esempio: unario operator-
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{1977};
std::cout << -y << '\n';
return 0;
}
-1977
operator--
Sottrarre 1 dal valore dell'anno.
1) constexpr year& operator--() noexcept;
2) constexpr year operator--(int) noexcept;
Valore restituito
1) Un riferimento a questo year
dopo che è stato decrementato (decremento suffisso).
2) Copia dell'oggetto year
prima che sia stato decrementato (decremento del prefisso).
Esempio: operator--
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{2021};
std::cout << y << " " << --y << "\n"; // constexpr year& operator++() noexcept
std::cout << y << " " << y-- << "\n"; // constexpr year operator++(int) noexcept
std::cout << y << "\n";
return 0;
}
2021 2020
2020 2020
2019
Osservazioni:
Se il risultato decrementato è minore di -32768, viene impostato su 32767.
operator+=
Aggiungere giorni a questo year
oggetto .
constexpr year& operator+=(const years& y) noexcept;
Parametri
y
Numero di anni da aggiungere.
Valore restituito
*this
Se il risultato incrementato supera 32767, passa a -32768.
operator-=
Sottrae i giorni da questo year
oggetto .
constexpr year& operator-=(const years& y) noexcept;
Parametri
y
Numero di anni da sottrarre.
Valore restituito
*this
. Se il risultato decrementato è minore di -32768, viene impostato su 32767.
operator int
Ottenere il year
valore.
explicit constexpr operator int() const noexcept;
Valore restituito
Valore dell'oggetto year
Esempio: operator int()
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{2020};
int yearValue = static_cast<int>(y);
std::cout << yearValue;
return 0;
}
2020
Vedi anche
<chrono>
year_month
year_month_day
year_month_day_last
year_month_weekday
year_month_weekday_last
Riferimento file di intestazione