weekday
-Klasse
Stellt einen Wochentag im gregorianischen Kalender dar. Beispiel: Dienstag.
Syntax
class weekday; // C++20
Hinweise
Ein weekday
Wert kann einen Wert von [0, 255] enthalten, enthält jedoch in der Regel einen Wert [0, 6], um einen Tag der Woche darzustellen.
Siehe Weekday-Konstanten unten für Konstanten, die Sie mit der weekday
Klasse verwenden können.
Mitglieder
Name | Beschreibung |
---|---|
Konstruktoren | Erstellen Sie ein weekday . |
c_encoding |
Rufen Sie den weekday Wert ab. |
iso_encoding |
Rufen Sie den ISO 8601-Wert weekday ab. |
ok |
Überprüfen Sie, ob der weekday Wert gültig ist. |
operator++ |
Erhöhen Sie die weekday . |
operator+= |
Add the specified number of weekdays to this weekday . |
operator-- |
Decrement the weekday . |
operator-= |
Subtrahieren Sie die angegebene Anzahl von Wochentagen von diesem weekday . |
operator[] |
Erstellen Sie eine weekday_indexed oder weekday_last aus diesem weekday . |
Nicht-Member
Name | Beschreibung |
---|---|
from_stream |
Analysieren Eines weekday aus dem angegebenen Datenstrom mithilfe des angegebenen Formats. |
operator+ |
Add specified number of weekdays to this weekday . |
operator- |
Subtrahieren Sie die angegebene Anzahl von Wochentagen davon weekday , oder suchen Sie den Unterschied zwischen zwei weekday Objekten. |
operator== |
Bestimmen Sie, ob zwei weekday Objekte gleich sind. |
operator<< |
Ausgabe eines weekday Datenstroms. |
Anforderungen
Header: <chrono>
seit C++20
Namespace:std::chrono
Compileroption: /std:c++latest
Konstruktoren
Erstellt ein Objekt vom Typ 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
Parameter
dp
Erstellen Sie einen weekday
using the day of the week dp
.
wd
Erstellen eines weekday
mit Wert wd
.
Hinweise
1) Der Standardkonstruktor initialisiert nicht den Wochentagwert.
2) Erstellen sie mit weekday
dem angegebenen Wert.
Ist wd
7, wird der weekday
Wert mit dem Wert 0 erstellt.
Initialisieren Sie nicht mit Werten über 255, oder das Ergebnis weekday
hat einen nicht angegebenen Wert.
3) Berechnet, welcher Wochentag dem std::chrono::sys_days
Wert dp
entspricht, und erstellt einen weekday
betreffenden Tag.
4) Berechnet den Wochentag, der dem std::chrono::local_days
Wert dp
entspricht, und erstellt einen weekday
betreffenden Tag. Es verhält sich so, als ob Sie die weekday
Verwendung weekday(std::chrono::sys_days(dp.time_since_epoch()))
erstellt haben.
Beispiel: Erstellen einer weekday
-Klasse
// 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;
Rückgabewert
Dies ist der Wert für den Wochentag.
iso_encoding
Der Wochentagswert, aber mit Sonntag (0) wird als 7 pro ISO 8601 interpretiert.
constexpr unsigned iso_encoding() const noexcept;
Rückgabewert
Dies ist der Wert für den Wochentag.
ok
Hiermit wird überprüft, ob der Wert, der in dieser weekday
-Klasse gespeichert ist, im gültigen Bereich liegt.
constexpr bool is_leap() const noexcept;
Rückgabewert
true
wenn sich der Wochentagswert im Bereich [0, 6] befindet. Andernfalls false
.
operator++
Addieren Sie 1 zum Wochentagswert.
1) constexpr std::chrono::weekday& operator++() noexcept;
2) constexpr std::chrono::weekday operator++(int) noexcept;
Rückgabewert
1) Ein Verweis auf *this
Wochentag , nachdem er erhöht wurde (ein Postfix-Inkrement).
2) Eine Kopie der weekday
, bevor sie erhöht wurde (ein Präfix inkrementiert).
Beispiel: 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
Hinweise
Der inkrementierte Wert ist Modulo 7. Er befindet sich immer im Bereich [0, 6].
operator--
Subtrahieren Sie 1 vom weekday
Wert.
1) constexpr std::chrono::weekday& operator--() noexcept;
2) constexpr std::chrono::weekday operator--(int) noexcept;
Rückgabewert
1) Ein Verweis darauf *this
weekday
, nachdem er dekrementiert wurde (eine Postfix-Dekrementierung).
2) Eine Kopie der weekday
vor ihr dekrementierten (Präfix-Dekrementierung).
Beispiel: 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
Hinweise
Wenn das dekrementierte Ergebnis kleiner als 0 ist, wird es auf 6 festgelegt.
operator+=
Hinzufügen von Tagen zu einem weekday
.
constexpr weekday& operator+=(const days& d) noexcept;
Parameter
*d*
Die Anzahl zu addierender Tage.
Rückgabewert
Der Wert von *this + d
. Das Ergebnis ist Modulo 7, im Bereich [0, 6].
operator-=
Subtrahieren von Tagen von der weekday
.
constexpr weekday& operator-=(const days& d) noexcept;
Parameter
*d*
Die Anzahl der Tage, die subtrahiert werden sollen.
Rückgabewert
Der Wert von *this - d
. Das Ergebnis ist Modulo 7, im Bereich [0, 6].
operator[]
Erstellen Sie eine weekday_indexed oder weekday_last aus diesem weekday
.
1) std::chrono::weekday_indexed(*this, index) // C++20
2) std::chrono::weekday_last(*this) // C++20
Rückgabewert
1) std::chrono::weekday_indexed(*this, index)
2) std::chrono::weekday_last(*this)
Beispiel: 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
Wochentagkonstanten
(C++20) Die <chrono>
Kopfzeile definiert die folgenden Konstanten, mit denen Sie ihren Code einfacher, typsicherheit und wartungsfreundlicher verwenden weekday
können. Diese Konstanten befinden sich im Bereich, wenn std::chrono
sie sich im Bereich befinden.
// 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};
Siehe auch
weekday_last
-Klasse
weekday_indexed
-Klasse
<chrono>
Headerdateienreferenz