Partager via


Classe month

Représente un mois d’un an. Par exemple, juillet.

Syntaxe

class month; // C++20

Notes

Une month valeur contient normalement des valeurs dans la plage [1, 12]. Elle peut également contenir des valeurs non négatives en dehors de cette plage. Consultez les constantes Month, ci-dessous, pour les constantes que vous pouvez utiliser avec la month classe.

Membres

Nom Description
Constructeurs Construisez un month.
ok Vérifiez que la valeur du mois se trouve dans la plage valide [1,12].
operator++ Incrémenter le month.
operator+= Ajoutez le nombre spécifié de mois à ce month.
operator-- Décrémentez cela month.
operator-= Soustrait le nombre spécifié de mois à partir de ce month.
operator unsigned Obtenez la month valeur.

Non-membres

Nom Description
from_stream Analysez une month valeur à partir du flux donné à l’aide du format spécifié.
operator+ Ajoutez le nombre spécifié de mois à ce monthqui suit , en retournant une nouvelle month instance.
operator- Soustrait le nombre spécifié de mois à partir de ce mois. Retourne une nouvelle instance month.
operator== Déterminez si deux mois sont égaux.
operator<=> Comparez ce mois-ci à un autre mois. Les >, >=, <=, <, != opérateurs sont synthétisés par le compilateur.
operator<< Sortie d’un month flux donné.

Spécifications

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

Espace de noms :std::chrono

Option du compilateur :/std:c++latest

Constructeurs

Construisez un month.

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

Paramètres

m
Construisez une month valeur avec la valeur m.

Notes

1) Le constructeur par défaut n’initialise pas la valeur de jour.
2) Construisez une month valeur de jour initialisée sur m.

ok

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

constexpr bool ok() const noexcept;

Valeur retournée

true si la valeur du mois se trouve dans la plage [1,12]. Sinon, false.

operator++

Incrémentez la valeur du mois.

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

Valeur retournée

1) Référence au *this mois après son incrémentation (incrément de postfix).
2) Copie du month, 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()
{
    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

Notes

Si le résultat dépasse 12, il est défini sur 1.

operator--

Soustrait 1 de la valeur du mois.

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

Valeur retournée

1) Référence à une *thismonthfois qu’elle a été décrémentée (décrémentation postfixée).
2) Copie de la monthversion 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;
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

Notes

Si le résultat décrémenté est inférieur à 1, il est défini sur 12.

operator+=

Ajoutez des mois à ce month.

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

Paramètres

m
Nombre de mois à ajouter.

Valeur retournée

*this

operator-=

Soustraction months de ce month.

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

Paramètres

m
Mois à soustraire.

Valeur retournée

*this.

operator unsigned

Obtenez la valeur non signée month .

explicit constexpr operator unsigned() const noexcept;

Valeur retournée

Valeur non signée de ce month

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

Constantes mois

(C++20) L’en-tête <chrono> définit les constantes suivantes que vous pouvez utiliser pour month plus de commodité, de sécurité de type et de maintenance de votre code. Ces constantes sont dans l’étendue quand std::chrono elles se trouvent dans l’étendue.

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

Voir aussi

<chrono>
month_day Classe
month_day_last Classe
month_weekday Classe
month_weekday_last, classe