Classe weekday
Représente un jour de la semaine dans le calendrier grégorien. Par exemple, mardi.
Syntaxe
class weekday; // C++20
Notes
Un weekday
peut contenir une valeur de [0, 255], mais contient généralement une valeur [0, 6] pour représenter un jour de la semaine.
Consultez les constantes de la semaine ci-dessous pour connaître les constantes que vous pouvez utiliser avec la weekday
classe.
Membres
Nom | Description |
---|---|
Constructeurs | Construisez un weekday . |
c_encoding |
Obtenez la weekday valeur. |
iso_encoding |
Obtenez la valeur ISO 8601 weekday . |
ok |
Vérifiez si la weekday valeur est valide. |
operator++ |
Incrémenter le weekday . |
operator+= |
Ajoutez le nombre spécifié de jours de semaine à ce weekday . |
operator-- |
Décrémentez le weekday . |
operator-= |
Soustrait le nombre spécifié de jours de semaine à partir de ce weekday . |
operator[] |
Créez un weekday_indexed ou weekday_last à partir de ce weekday fichier . |
Non-membres
Nom | Description |
---|---|
from_stream |
Analysez une weekday valeur à partir du flux donné à l’aide du format spécifié. |
operator+ |
Ajoutez le nombre spécifié de jours ouvrés à ce weekday . |
operator- |
Soustrait le nombre spécifié de jours de semaine à partir de ce weekday , ou recherchez la différence entre deux weekday objets. |
operator== |
Déterminez si deux weekday objets sont égaux. |
operator<< |
Sortie d’un weekday flux. |
Spécifications
En-tête : <chrono>
Depuis C++20
Espace de noms : std::chrono
Option du compilateur : /std:c++latest
Constructeurs
Construit un objet weekday
.
1) weekday() = default; // C++20
2) explicit constexpr weekday(unsigned wd) noexcept; // C++20
3) constexpr weekday(const sys_days& dp) noexcept; // C++20
4) explicit constexpr weekday(const local_days& dp) noexcept; // C++20
Paramètres
dp
Construisez un weekday
utilisant le jour de la semaine dp
.
wd
Construisez une weekday
valeur avec la valeur wd
.
Notes
1) Le constructeur par défaut n’initialise pas la valeur de la semaine.
2) Construisez une weekday
valeur avec la valeur spécifiée.
Si wd
la valeur est 7, la weekday
valeur 0 est construite.
N’initialisez pas avec des valeurs supérieures à 255 ou les résultats weekday
auront une valeur non spécifiée.
3) Calcule le jour de la semaine correspondant à la std::chrono::sys_days
valeur dp
et construit une weekday
utilisation de ce jour.
4) Calcule le jour de la semaine qui correspond à la std::chrono::local_days
valeur dp
et construit une weekday
utilisation de ce jour. Il se comporte comme si vous avez créé l’utilisation weekday
weekday(std::chrono::sys_days(dp.time_since_epoch()))
.
Exemple : Créer un weekday
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
weekday wd{ Wednesday };
weekday wd2{ 3 };
std::cout << wd << '\n' << wd2;
return 0;
}
Wednesday
Wednesday
c_encoding
constexpr unsigned c_encoding() const noexcept;
Valeur retournée
Valeur du jour de la semaine.
iso_encoding
La valeur de la semaine, mais avec dimanche (0) est interprétée comme 7 par ISO 8601.
constexpr unsigned iso_encoding() const noexcept;
Valeur retournée
Valeur du jour de la semaine.
ok
Vérifiez si la valeur stockée dans cette weekday
plage est valide.
constexpr bool is_leap() const noexcept;
Valeur retournée
true
si la valeur de la semaine se trouve dans la plage [0, 6]. Sinon, false
.
operator++
Ajoutez 1 à la valeur de la semaine.
1) constexpr std::chrono::weekday& operator++() noexcept;
2) constexpr std::chrono::weekday operator++(int) noexcept;
Valeur retournée
1) Référence à *this
la semaine après l’incrémentation (incrément de postfix).
2) Copie du weekday
, 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;
using namespace std::chrono;
int main()
{
std::chrono::weekday wd{Thursday};
std::cout << wd << " " << ++wd << "\n"; // constexpr weekday& operator++() noexcept
std::cout << wd << " " << wd++ << "\n"; // constexpr weekday operator++(int) noexcept
std::cout << wd << "\n";
return 0;
}
Thu Fri
Fri Fri
Sat
Notes
La valeur incrémentée est modulo 7. Il sera toujours dans la plage [0, 6].
operator--
Soustrait 1 de la weekday
valeur.
1) constexpr std::chrono::weekday& operator--() noexcept;
2) constexpr std::chrono::weekday operator--(int) noexcept;
Valeur retournée
1) Référence à une *this
weekday
fois qu’elle a été décrémentée (décrémentation postfixée).
2) Copie de la weekday
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()
{
weekday y = weekday{Thursday};
cout << y << " " << --y << "\n"; // constexpr weekday& operator--() noexcept
cout << y << " " << y-- << "\n"; // constexpr weekday operator--(int) noexcept
cout << y << "\n";
return 0;
}
Thu Wed
Wed Wed
Tue
Notes
Si le résultat décrémenté est inférieur à 0, il est défini sur 6.
operator+=
Ajouter des jours à un weekday
.
constexpr weekday& operator+=(const days& d) noexcept;
Paramètres
*d*
Nombre de jours à ajouter.
Valeur retournée
la valeur de la propriété *this + d
; Le résultat sera modulo 7, dans la plage [0, 6].
operator-=
Soustraire les jours du weekday
.
constexpr weekday& operator-=(const days& d) noexcept;
Paramètres
*d*
Nombre de jours à soustraire.
Valeur retournée
la valeur de la propriété *this - d
; Le résultat sera modulo 7, dans la plage [0, 6].
operator[]
Créez un weekday_indexed ou weekday_last à partir de ce weekday
fichier .
1) std::chrono::weekday_indexed(*this, index) // C++20
2) std::chrono::weekday_last(*this) // C++20
Valeur retournée
1) std::chrono::weekday_indexed(*this, index)
2) std::chrono::weekday_last(*this)
Exemple : operator[]
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main()
{
constexpr auto firstMondayInJanuary =
year_month_day{ Monday[2] / January / 2021y };
std::cout << firstMondayInJanuary << "\n";
constexpr auto lastMondayInJanuary =
year_month_day{ Tuesday[last] / January / 2021y };
std::cout << lastMondayInJanuary << "\n";
}
2021-01-11
2021-01-26
Constantes de la semaine
(C++20) L’en-tête <chrono>
définit les constantes suivantes que vous pouvez utiliser pour weekday
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 std::chrono::weekday Sunday{0};
inline constexpr std::chrono::weekday Monday{1};
inline constexpr std::chrono::weekday Tuesday{2};
inline constexpr std::chrono::weekday Wednesday{3};
inline constexpr std::chrono::weekday Thursday{4};
inline constexpr std::chrono::weekday Friday{5};
inline constexpr std::chrono::weekday Saturday{6};
Voir aussi
weekday_last
, classe
weekday_indexed
, classe
<chrono>
Informations de référence sur les fichiers d’en-tête