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 month qui 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 *this
month
fois qu’elle a été décrémentée (décrémentation postfixée).
2) Copie de la month
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;
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