Partager via


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

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 dpet construit une weekday utilisation de ce jour.
4) Calcule le jour de la semaine qui correspond à la std::chrono::local_days valeur dpet construit une weekday utilisation de ce jour. Il se comporte comme si vous avez créé l’utilisation weekdayweekday(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 *thisweekdayfois qu’elle a été décrémentée (décrémentation postfixée).
2) Copie de la weekdayversion 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 weekdayfichier .

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