Partage via


Classe year

Représente une année dans le calendrier grégorien.

Syntaxe

class year; // C++20

Notes

Un year peut contenir une valeur d’année comprise entre -32767 et 32767.

Membres

Nom Description
Constructeurs Construire un year
is_leap Déterminez si l’année est une année bissextile.
max Retourne la plus grande valeur d’année possible.
min Retourne la plus petite valeur d’année possible.
ok Vérifiez que la valeur de l’année se trouve dans la plage valide [-32767, 32767].
operator+ Unaire plus.
operator++ Incrémentez l’année.
operator+= Ajoutez le nombre d’années spécifié à ce year.
operator- Moins unaire.
operator-- Décrémentez l’année.
operator-= Soustrait le nombre spécifié d’années à partir de ce year.
operator int Obtenez la year valeur.

Non-membres

Nom Description
from_stream Analyser un year flux à partir d’un flux à l’aide du format spécifié
operator+ Ajouter des années.
operator- Soustraire des années.
operator== Déterminez si deux ans sont égaux.
operator<=> Comparez-le year à un autre year. Les >, >=, <=, <, != opérateurs sont synthétisés par le compilateur.
operator<< Sortie d’un year flux donné.
operator""y Créez un year littéral.

Spécifications

En-tête : <chrono> (depuis C++20)

Espace de noms : std::chrono

Option du compilateur : /std:c++latest

Constructeurs

Construisez un year.

1) year() = default;
2) explicit constexpr year(unsigned y) noexcept;

Paramètres

y
Construisez une year valeur avec la valeur y.

Notes

1) Le constructeur par défaut n’initialise pas la year valeur.
2) Construisez une year valeur avec la valeur spécifiée.

Exemple : Créer un 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

Vérifiez si la valeur stockée dans cette year plage est valide.

constexpr bool is_leap() const noexcept;

Valeur retournée

true si la valeur de l’année est une année bissextile. Sinon, false. Une année bissextile est une année divisible de 4, mais pas 100- ou est divisible de 400.

max

Retourne la plus grande année possible.

static constexpr year max() noexcept;

Valeur retournée

year{32767}

min

Retourne la plus petite année possible.

static constexpr year min() noexcept;

Valeur retournée

year{-32767}

ok

Vérifiez si la valeur stockée dans cette year plage est valide.

constexpr bool ok() const noexcept;

Valeur retournée

true si la valeur de l’année se trouve dans la plage [-32676, 32767]. Sinon, false.

operator+

Appliquez unaire plus.

constexpr year operator+() const noexcept;

Valeur retournée

Retourne *this.

Exemple : unaire 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++

Ajoutez 1 à la valeur de l’année.

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

Valeur retournée

1) Renvoie la référence à cette année après son incrémentation (incrément postfix).
2) Retourne une copie du year, avant d’être incrémentée (incrément de préfixe).

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

Notes

Si le résultat incrémenté dépasse 32767, il dépasse -32768

operator-

Moins unaire. Negatez le year.

constexpr year operator-() const noexcept; // C++20

Valeur retournée

Retourne une copie négation du year.

Exemple : unaire 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--

Soustrait 1 de la valeur de l’année.

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

Valeur retournée

1) Référence à ceci year après sa décrémentation (décrémentation postfixée).
2) Copie de la year version antérieure à la décrémentation (décrémentation de préfixe).

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

Notes

Si le résultat décrémenté est inférieur à -32768, il est défini sur 32767.

operator+=

Ajoutez des jours à ce year.

constexpr year& operator+=(const years& y) noexcept;

Paramètres

y
Nombre d’années à ajouter.

Valeur retournée

*this Si le résultat incrémenté dépasse 32767, il dépasse -32768.

operator-=

Soustraire les jours de ce year.

constexpr year& operator-=(const years& y) noexcept;

Paramètres

y
Nombre d’années à soustraire.

Valeur retournée

*this. Si le résultat décrémenté est inférieur à -32768, il est défini sur 32767.

operator int

Obtenez la year valeur.

explicit constexpr operator int() const noexcept;

Valeur retournée

La valeur de year

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

Voir aussi

<chrono>
year_month
year_month_day
year_month_day_last
year_month_weekday
year_month_weekday_last
Informations de référence sur les fichiers d’en-tête