Namespaces
Variants

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

From cppreference.net
(Anmerkung: Der bereitgestellte HTML-Code enthält keinen übersetzbaren Text, da alle Tags leer sind. Die Struktur und Formatierung bleiben unverändert.)
Definiert in Header <chrono>
(seit C++20)
(seit C++20)
(seit C++20)
(seit C++20)
(seit C++20)
(seit C++20)
1,2) Fügt dm. count ( ) Monate zum durch ymdl repräsentierten Datum hinzu. Das Ergebnis hat dasselbe year() und month() wie std:: chrono :: year_month ( ymdl. year ( ) , ymdl. month ( ) ) + dm .
3,4) Fügt dy. count ( ) Jahre zum durch ymdl repräsentierten Datum hinzu. Das Ergebnis entspricht std:: chrono :: year_month_day_last ( ymdl. year ( ) + dy, ymdl. month_day_last ( ) ) .
5) Subtrahiert dm. count ( ) Monate vom Datum, das durch ymdl repräsentiert wird. Entspricht ymdl + - dm .
6) Subtrahiert dy. count ( ) Jahre vom Datum, das durch ymdl repräsentiert wird. Entspricht ymdl + - 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, falls der Aufruf andernfalls mehrdeutig wäre.

Beispiel

#include <cassert>
#include <chrono>
#include <iostream>
int main()
{
    auto ymdl{11/std::chrono::last/2020};
    std::cout << ymdl << '\n';
    ymdl = std::chrono::years(10) + ymdl;
    std::cout << ymdl << '\n';
    assert(ymdl == std::chrono::day(30)/
                   std::chrono::November/
                   std::chrono::year(2030));
    ymdl = ymdl - std::chrono::months(6);
    std::cout << ymdl << '\n';
    assert(ymdl == std::chrono::day(31)/
                   std::chrono::May/
                   std::chrono::year(2030));
}

Ausgabe:

2020/Nov/last
2030/Nov/last
2030/May/last