year_month_weekday
-Klasse
Stellt ein bestimmtes Jahr, einen bestimmten Monat und einen n. Wochentag des Monats dar.
Syntax
class year_month_weekday; // C++20
Hinweise
year_month_weekday
unterstützt jahre- und monateorientierte Arithmetik, aber nicht tageorientierte Arithmetik. Verwenden Sie für tageorientierte Arithmetik die sys_days
Konvertierung, um in eine sys_days
, die tageorientierte Arithmetik unterstützt, zu konvertieren.
Die year_month_weekday
-Klasse ist ein trivial kopierbarer Klassentyp im Standardformat.
Mitglieder
Name | Beschreibung |
---|---|
Constructor |
Erstellen Sie einen year_month_weekday mit dem angegebenen Monat und Wochentag. |
index |
Ruft den Index des Wochentags ab. |
month |
Rufen Sie den Monatswert ab. |
ok |
Überprüfen Sie, ob dies year_month_weekday gültig ist. |
operator+= |
Fügen Sie die angegebene Anzahl von Monaten oder Jahren hinzu. |
operator-= |
Subtrahieren Sie die angegebene Anzahl von Monaten oder Jahren. |
operator local_days |
Rufen Sie die Anzahl der Tage von der system_clock Epoche bis zu dieser year_month_weekday als local_days . |
operator sys_days |
Rufen Sie die Anzahl der Tage von der system_clock Epoche bis zu dieser year_month_weekday als sys_days . |
weekday |
Rufen Sie den Wochentag ab. |
weekday_indexed |
Rufen Sie die in dieser year_month_weekday Datei gespeicherten [weekday_indexed ] ab. |
year |
Ruft das Jahr ab. |
Nicht-Member
Name | Beschreibung |
---|---|
operator+ |
Fügen Sie Monate oder Jahre hinzu. |
operator- |
Subtrahieren Sie Monate oder Jahre. |
operator== |
Bestimmen Sie, ob zwei year_month_weekday Werte gleich sind. |
operator<< |
Gibt einen year_month_weekday an den angegebenen Datenstrom aus. |
Anforderungen
Header: <chrono>
(seit C++20)
Namespace:std::chrono
Compileroption: /std:c++latest
Konstruktor
Erstellt ein Objekt vom Typ year_month_weekday
.
// 1)
year_month_weekday() = default
// 2)
constexpr year_month_weekday(const year& y, const month& m, const weekday_indexed& wdi) noexcept;
// 3)
constexpr explicit year_month_weekday(const local_days& dp) noexcept;
// 4)
constexpr year_month_weekday(const sys_days& dp) noexcept;
Parameter
m
Der month
-Wert.
dp
A sys_days
oder local_days
wdi
Der weekday
-Wert.
y
Der year
-Wert.
Hinweise: Konstruktor
1) Der Standardkonstruktor initialisiert keines der Felder.
2) Erstellt eine year_month_weekday
, die dem angegebenen year
, , month
und weekday_indexed
.
3) Erstellt ein year_month_weekday
, das dem durch sys_days{dp.time_since_epoch()}
dargestellten Datum entspricht.
4) Erstellt ein year_month_weekday
, das dem durch dp
dargestellten Datum entspricht. Für alle year_month_weekday
(ymdl) ok()
ist true
, vergleicht mit operator==
year_month_weekday{sys_days{ymdl}}
.true
Informationen zur C++20-Syntax, die zum Angeben von Datumsangaben verwendet wird, finden Sie unter operator/
Beispiel: Erstellen einer year_month_weekday
-Klasse
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_weekday ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
index
Ruft den Wochenindex des Wochentags in diesem year_month_weekday
.
constexpr unsigned index() const noexcept;
Rückgabewert
Der Index des Wochentags. Wenn beispielsweise der Wochentag der erste Mittwoch der Woche war, wäre der Index 1.
month
Rufen Sie den Monatswert ab.
constexpr month month() const noexcept;
Rückgabewert
Der month
-Wert.
ok
Überprüfen Sie, ob der in dieser year_month_weekday
Datei gespeicherte Wert gültig ist. Das year
, month
und weekday_index
das in diesem year_month_weekday
Speicher gespeichert muss alle sein ok
, damit diese Funktion zurückgegeben werden true
kann. Andernfalls wird false
zurückgegeben.
constexpr bool ok() const noexcept;
Rückgabewert
true
wenn der year_month_weekday
Wert gültig ist. Andernfalls false
.
A year_month_weekday
ist gültig, wenn sowohl gültig month
als auch der weekday_indexed
Wert gültig ist.
operator+=
Fügen Sie dieser year_month_weekday
Eigenschaft Monate oder Jahre hinzu.
1) constexpr year_month_weekday& operator+=(const months& m) noexcept;
2) constexpr year_month_weekday& operator+=(const years& y) noexcept;
Parameter
m
Die Anzahl der hinzuzufügenden Monate.
y
Die Anzahl der hinzuzufügenden Jahre.
Rückgabewert
*this
die das Ergebnis der Hinzufügung widerspiegelt.
Beispiel: operator+=
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_weekday ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
ymw += months{1};
ymw += years{1};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
1998/Feb/Wed[1]
operator-=
Subtrahieren Sie Monate oder Jahre von diesem year_month_weekday
.
1) constexpr year_month_weekday& operator-=(const months& m) noexcept;
2) constexpr year_month_weekday& operator-=(const years& y) noexcept;
Parameter
m
Die Anzahl der Monate, die subtrahiert werden sollen.
y
Die Anzahl der Jahre, die subtrahiert werden sollen.
Rückgabewert
*this
die das Ergebnis der Subtraktion widerspiegelt.
Beispiel: operator-=
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_weekday ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
ymw -= months{1};
ymw -= years{1};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
1995/Dec/Wed[1]
operator local_days
Die Anzahl der Tage aus der system_clock
Epoche (1/1/1970) auf diese year_month_weekday
abrufen local_days
constexpr explicit operator local_days() const noexcept;
Rückgabewert
Wenn ok()
, gibt eine Anzahl von Tagen als local_days{sys_days{*this}.time_since_epoch()}
. Andernfalls ist der zurückgegebene Wert nicht angegeben.
operator sys_days
Rufen Sie die Anzahl der Tage aus der system_clock
Epoche (1.1.1970) als year_month_day
sys_days
.
constexpr operator sys_days() const noexcept;
Rückgabewert
Wenn ok()
, gibt ein sys_days
, das das Datum darstellt, das (index() - 1) * 7
Tage nach dem ersten weekday()
von year()/month()
. Wenn index()
dies der Wert ist 0
, stellt das zurückgegebene sys_days
Datum das Datum 7 Tage vor dem ersten weekday()
von year()/month()
.
weekday
Rufen Sie den weekday
gespeicherten year_month_weekday
In diesem weekday_indexed
Gespeicherten ab.
constexpr weekday weekday() const noexcept;
Rückgabewert
Der weekday
-Wert.
weekday_indexed
Rufen Sie die weekday_indexed
gespeicherte Datei in dieser year_month_weekday
Datei ab.
constexpr weekday_indexed weekday_indexed() const noexcept;
Rückgabewert
Der weekday_indexed
-Wert.
year
Ruft den Jahreswert ab.
constexpr year year() const noexcept;
Rückgabewert
Der year
-Wert.
Siehe auch
<chrono>
year
year_month
year_month_day
year_month_day_last
year_month_weekday_last
operator/
Headerdateienreferenz