Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Stellt einen Monat, ein Jahr und einen Tag dar.
Syntax
class year_month_day; // C++20
Member
| Name | Beschreibung |
|---|---|
| Konstruktoren | Erstellen eines year_month_day |
day |
Gibt den Tag zurück. |
month |
Gibt den Monat zurück. |
ok |
Überprüfen Sie, ob sich die year Werte month im gültigen Bereich befinden. |
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_day als local_days. |
operator sys_days |
Rufen Sie die Anzahl der Tage von der system_clock Epoche bis zu dieser year_month_day als sys_days. |
year |
Gibt das Jahr zurück. |
Nicht-Member
| Name | Beschreibung |
|---|---|
from_stream |
Analysieren eines year_month_day Datenstroms mithilfe des angegebenen Formats |
operator+ |
Fügen Sie Monate oder Jahre hinzu. |
operator- |
Subtrahieren Sie Monate oder Jahre. |
operator== |
Bestimmen Sie, ob zwei year_month_day Werte gleich sind. |
operator<=> |
Vergleichen Sie zwei year_month_day Werte. Die >, >=, <=, <, != Operatoren werden vom Compiler synthetisiert. |
operator<< |
Ausgabe eines year_month_day Datenstroms. |
Anforderungen
Header: <chrono> (seit C++20)
Namespace:std::chrono
Compileroption: /std:c++latest
Konstruktoren
Erstellen Sie ein year_month_day.
1) year_month_day() = default;
2) constexpr year_month_day(const year& y, const month& m, day& d) noexcept;
3) constexpr year_month_day(const year_month_day_last& ymdl) noexcept;
4) constexpr year_month_day(const sys_days& dp) noexcept;
5) constexpr explicit year_month_day(const local_days& dp) noexcept;
Parameter
d Ein day Wert.
dp A sys_days oder local_days Wert.
m Ein month Wert.
y
Ein year-Wert.
ymdl Ein year_month_day_last Wert.
Hinweise
1) Der Standardkonstruktor initialisiert den Monat oder Tag nicht.
2) Erstellt ein year_month_day mit dem angegebenen Jahr, Monat und Tag.
3) Erstellt ein year_month_day mit dem angegebenen Jahr, Monat und Tag von ymdl
4) Erstellt ein year_month_day mit demselben Datum wie dp.
5) Erstellt ein year_month_day mit demselben Datum wie dp , aber wie von year_month_day(sys_days(dp.time_since_epoch())).
Informationen zur C++20-Syntax, die zum Angeben von Datumsangaben verwendet wird, finden Sie unter operator/
Beispiel: Erstellen einer year_month_day-Klasse
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_day ymd{ April / 4 / 1975 };
std::cout << ymd;
return 0;
}
1975-04-04
day
Rufen Sie den Tag ab.
constexpr day day() const noexcept;
Rückgabewert
Der day-Wert.
month
Rufen Sie den Monat ab.
constexpr month month() const noexcept;
Rückgabewert
Der month-Wert.
operator local_days
Die Anzahl der Tage aus der system_clock Epoche (1/1/1970) auf diese year_month_day 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()}
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 eine sys_days Anzahl von Tagen aus der sys_days Epoche (1/1/1/1970) an das Datum zurück, das in diesem year_month_day. Der Wert wird negativ sein, wenn das Datum in dieser year_month_day Zeit vor der sys_days Epoche liegt.
Wenn das Jahr und der Monat in diesem year_month_day Wert sind ok(), wird zurückgegeben sys_days{year/month/1d} + (day-1d). Andernfalls ist der zurückgegebene Wert nicht angegeben.
A sys_days im Bereich [days{-12687428}, days{11248737}] kann in ein year_month_day und zurück konvertiert werden und denselben Wert aufweisen.
year
Ruft das Jahr ab.
constexpr year year() const noexcept;
Rückgabewert
Die year.
ok
Überprüfen Sie, ob sich der darin year_month_day gespeicherte Wert für Jahr und Monat sowohl im gültigen Bereich befindet. Stellt sicher, dass sich der Tag im Bereich [1d, (y/m/last).day()], für Schaltjahre und die unterschiedliche Anzahl von Tagen in jedem Monat befindet.
constexpr bool ok() const noexcept;
Rückgabewert
true wenn sich die year_month_day Werte für Jahr, Monat und Tag im gültigen Bereich befinden. Andernfalls false.
operator+=
Fügen Sie dieser year_month_dayEigenschaft Monate oder Jahre hinzu.
1) constexpr year_month_day& operator+=(const months& dm) noexcept;
2) constexpr year_month_day& operator+=(const years& dy) noexcept;
Parameter
dm
Die Anzahl der hinzuzufügenden Monate.
dy
Die Anzahl der hinzuzufügenden Jahre.
Rückgabewert
*this, das 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_day ymd{June / 1d / 2021y};
std::cout << ymd << '\n';
ymd += months{2};
ymd += years{1};
std::cout << ymd;
return 0;
}
2021-06-01
2022-08-01
operator-=
Subtrahieren Sie Monate oder Jahre von diesem year_month_day.
1) constexpr year_month_day& operator-=(const months& dm) noexcept;
2) constexpr year_month_day& operator-=(const years& dy) noexcept;
Parameter
dm
Die Anzahl der Monate, die subtrahiert werden sollen.
dy
Die Anzahl der Jahre, die subtrahiert werden sollen.
Rückgabewert
*this, das das Ergebnis der Subtraktion widerspiegelt.
Beispiel: operator-=
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_day ymd{June / 1d / 2021y};
std::cout << ymd << '\n';
ymd -= months{2};
ymd -= years{1};
std::cout << ymd;
return 0;
}
2021-06-01
2020-04-01
Siehe auch
<chrono>
year
year_month
year_month_day_last
year_month_weekday
year_month_weekday_last
operator/
Headerdateienreferenz