Namespaces
Variants

std::chrono:: operator+, std::chrono:: operator- (std::chrono::year_month_weekday)

From cppreference.net
(Anmerkung: Der bereitgestellte HTML-Code enthält keinen übersetzbaren Text, da alle Tags leer sind. Die Struktur bleibt unverändert, wie angefordert.)
(1) (seit C++20)
(2) (seit C++20)
(3) (seit C++20)
(4) (seit C++20)
(5) (seit C++20)
(6) (seit C++20)
1,2) Fügt dm. count ( ) Monate zum durch ymwd repräsentierten Datum hinzu. Das Ergebnis hat dasselbe year() und month() wie std:: chrono :: year_month ( ymwd. year ( ) , ymwd. month ( ) ) + dm und denselben weekday() und index() wie ymwd .
3,4) Fügt dy. count ( ) Jahre zum durch ymwd repräsentierten Datum hinzu. Das Ergebnis entspricht std:: chrono :: year_month_weekday ( ymwd. year ( ) + dy, ymwd. month ( ) , ymwd. weekday_indexed ( ) ) .
5) Subtrahiert dm. count ( ) Monate vom Datum, das durch ymwd repräsentiert wird. Entspricht ymwd + - dm .
6) Subtrahiert dy. count ( ) Jahre vom Datum, das durch ymwd repräsentiert wird. Entspricht ymwd + - dy .

Für Zeitdauern, die sowohl in std::chrono::years als auch in std::chrono::months konvertierbar sind, werden die years Überladungen (3,4,6) bevorzugt, wenn der Aufruf andernfalls mehrdeutig wäre.

Hinweise

Selbst wenn ymwd. ok ( ) true ist, kann der resultierende year_month_weekday möglicherweise kein gültiges Datum darstellen, falls ymwd. index ( ) 5 ist.

Beispiel

#include <cassert>
#include <chrono>
#include <iostream>
int main()
{
    auto ymwdi{1/std::chrono::Wednesday[1]/2021};
    std::cout << ymwdi << '\n';
    ymwdi = std::chrono::years(5) + ymwdi;
    // Erster Mittwoch im Januar 2026
    std::cout << ymwdi << '\n';
    assert(static_cast<std::chrono::year_month_day>(ymwdi) ==
           std::chrono::January/7/2026);
    ymwdi = ymwdi - std::chrono::months(6);
    // Erster Mittwoch im Juli 2025
    std::cout << ymwdi << '\n';
    assert(static_cast<std::chrono::year_month_day>(ymwdi) ==
           std::chrono::July/2/2025);
}

Ausgabe:

2021/Jan/Wed[1]
2026/Jan/Wed[1]
2025/Jul/Wed[1]