Condividi tramite


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 yearoggetto .
operator- Meno unario.
operator-- Decrementare l'anno.
operator-= Sottrarre il numero specificato di anni da questo yearoggetto .
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 yearoggetto . 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 yearoggetto .

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 yearoggetto .

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