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 weekday elementu . |
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 weekday elementu . |
operator- |
Odejmij określoną liczbę dni roboczych z tego weekday obiektu 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