Udostępnij za pośrednictwem


Klasa weekday

Reprezentuje dzień tygodnia w kalendarzu gregoriańskim. Na przykład wtorek.

Składnia

class weekday; // C++20

Uwagi

Wartość weekday może zawierać wartość [0, 255], ale zazwyczaj zawiera wartość [0, 6] reprezentującą dzień tygodnia. Zobacz Stałe dni powszednie poniżej, aby uzyskać stałe, których można używać z klasą weekday .

Elementy członkowskie

Nazwa/nazwisko opis
Konstruktory Skonstruuj element weekday.
c_encoding weekday Pobierz wartość.
iso_encoding Pobierz wartość ISO 8601 weekday .
ok Sprawdź, czy wartość jest prawidłowa weekday .
operator++ Zwiększ wartość weekday.
operator+= Dodaj określoną liczbę dni roboczych do tego weekdayelementu .
operator-- Dekrementuj wartość weekday.
operator-= Odejmij określoną liczbę dni roboczych od tego weekday.
operator[] Utwórz weekday_indexed lub weekday_last na podstawie tego elementu weekday.

Inne niż elementy członkowskie

Nazwa/nazwisko opis
from_stream Przeanalizuj element weekday z danego strumienia przy użyciu określonego formatu.
operator+ Dodaj określoną liczbę dni roboczych do tego weekdayelementu .
operator- Odejmij określoną liczbę dni roboczych z tego weekdayobiektu lub znajdź różnicę między dwoma weekday obiektami.
operator== Ustal, czy dwa weekday obiekty są równe.
operator<< weekday Wyprowadzanie elementu do strumienia.

Wymagania

Nagłówek: <chrono> od C++20

Przestrzeń nazw: std::chrono

Opcja kompilatora: /std:c++latest

Konstruktory

Tworzy element 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

Parametry

dp
Skonstruuj przy weekday użyciu dnia tygodnia dp.

wd
Skonstruuj element weekday o wartości wd.

Uwagi

1) Domyślny konstruktor nie inicjuje wartości dnia tygodnia.
2) Konstruowanie elementu weekday z określoną wartością.
Jeśli wd wartość to 7, weekday element jest skonstruowany z wartością 0.
Nie inicjuj wartości powyżej 255 lub wynikowa weekday będzie mieć nieokreśloną wartość.
3) Oblicza, jaki dzień tygodnia odpowiada std::chrono::sys_days wartości dp, i tworzy weekday przy użyciu tego dnia.
4) Oblicza dzień tygodnia, który odpowiada std::chrono::local_days wartości dp, i tworzy weekday przy użyciu tego dnia. Zachowuje się tak, jakby został utworzony weekday przy użyciu polecenia weekday(std::chrono::sys_days(dp.time_since_epoch())).

Przykład: tworzenie elementu 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;

Wartość zwracana

Wartość dnia tygodnia.

iso_encoding

Wartość dnia tygodnia, ale z niedzielą (0) jest interpretowana jako 7 na iso 8601.

constexpr unsigned iso_encoding() const noexcept;

Wartość zwracana

Wartość dnia tygodnia.

ok

Sprawdź, czy wartość przechowywana w tym weekday zakresie znajduje się w prawidłowym zakresie.

constexpr bool is_leap() const noexcept;

Wartość zwracana

true jeśli wartość dnia tygodnia znajduje się w zakresie [0, 6]. W przeciwnym razie wartość false.

operator++

Dodaj wartość 1 do wartości dnia tygodnia.

1) constexpr std::chrono::weekday& operator++() noexcept;
2) constexpr std::chrono::weekday operator++(int) noexcept;

Wartość zwracana

1) Odwołanie do *this dnia powszedniego po jego przyrostku (przyrostek po nim).
2) Kopia elementu weekday, przed jej przyrostem (przyrostem prefiksu).

Przykład: 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

Uwagi

Wartość przyrostowa to modulo 7. Zawsze będzie ona znajdować się w zakresie [0, 6].

operator--

Odejmij 1 od weekday wartości.

1) constexpr std::chrono::weekday& operator--() noexcept;
2) constexpr std::chrono::weekday operator--(int) noexcept;

Wartość zwracana

1) Odwołanie do *this weekday po jego dekrementacji (dekrementacja postfiksu).
2) Kopia weekday przed jej dekrementacji (dekrementacja prefiksu).

Przykład: 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

Uwagi

Jeśli zdekrementowany wynik jest mniejszy niż 0, jest ustawiony na 6.

operator+=

Dodaj dni do elementu weekday.

constexpr weekday& operator+=(const days& d) noexcept;

Parametry

*d*
Liczba dni do dodania.

Wartość zwracana

Wartość *this + d. Wynik będzie modulo 7, w zakresie [0, 6].

operator-=

Odejmowanie dni od .weekday

constexpr weekday& operator-=(const days& d) noexcept;

Parametry

*d*
Liczba dni do odejmowania.

Wartość zwracana

Wartość *this - d. Wynik będzie modulo 7, w zakresie [0, 6].

operator[]

Utwórz weekday_indexed lub weekday_last na podstawie tego elementu weekday.

1) std::chrono::weekday_indexed(*this, index) // C++20
2) std::chrono::weekday_last(*this) // C++20

Wartość zwracana

1) std::chrono::weekday_indexed(*this, index)
2) std::chrono::weekday_last(*this)

Przykład: 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

Stałe dni powszednie

(C++20) Nagłówek <chrono> definiuje następujące stałe, których można używać z weekday większą wygodą, bezpieczeństwem typu i konserwacyjnością kodu. Te stałe znajdują się w zakresie, gdy std::chrono znajduje się w zakresie.

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

Zobacz też

Klasa weekday_last
Klasa weekday_indexed
<chrono>
Odwołanie do plików nagłówka