Freigeben über


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_weekdayDatei 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, , monthund 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 dpdargestellten 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, monthund weekday_index das in diesem year_month_weekday Speicher gespeichert muss alle sein ok , damit diese Funktion zurückgegeben werden truekann. Andernfalls wird falsezurü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_weekdayEigenschaft 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_weekdayIn 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_weekdayDatei 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