Namespaces
Variants

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

From cppreference.net
constexpr std:: chrono :: year operator + ( const std:: chrono :: year & y,
const std:: chrono :: years & ys ) noexcept ;
(1) (seit C++20)
constexpr std:: chrono :: year operator + ( const std:: chrono :: years & ys,
const std:: chrono :: year & y ) noexcept ;
(2) (seit C++20)
constexpr std:: chrono :: year operator - ( const std:: chrono :: year & y,
const std:: chrono :: years & ys ) noexcept ;
(3) (seit C++20)
constexpr std:: chrono :: years operator - ( const std:: chrono :: year & y1,
const std:: chrono :: year & y2 ) noexcept ;
(4) (seit C++20)
1,2) Fügt ys. count ( ) Jahre zu y hinzu.
3) Subtrahiert ys. count ( ) Jahre von y .
4) Gibt die Differenz in Jahren zwischen y1 und y2 zurück.

Inhaltsverzeichnis

Rückgabewert

1,2) std:: chrono :: year ( int ( y ) + ys. count ( ) )
3) std:: chrono :: year ( int ( y ) - ys. count ( ) )
4) std:: chrono :: years ( int ( y1 ) - int ( y2 ) )

Hinweise

Wenn der resultierende Jahreswert für (1-3) außerhalb des Bereichs [ - 32767 , 32767 ] liegt, ist der tatsächlich gespeicherte Wert nicht spezifiziert.

Das Ergebnis der Subtraktion zweier year -Werte ist eine Dauer vom Typ std::chrono::years . Diese Dauer-Einheit repräsentiert die Länge des durchschnittlichen gregorianischen Jahres, und die resultierende Dauer steht in keiner Beziehung zur Anzahl der Tage in den jeweiligen durch die Operanden repräsentierten Jahren. Zum Beispiel ist das Ergebnis von 2018y - 2017y gleich std:: chrono :: years ( 1 ) , was 365,2425 Tage repräsentiert, nicht 365 Tage.

Beispiel

#include <cassert>
#include <chrono>
int main()
{
    std::chrono::year y{2020};
    y = std::chrono::years(12) + y; // Überladung (2): Dauer + Zeitpunkt
    assert(y == std::chrono::year(2032));
    y = y - std::chrono::years(33); // Überladung (3): Zeitpunkt - Dauer
    assert(y == std::chrono::year(1999));
    // y = std::chrono::years(33) - y; // nicht unterstützt: Dauer - Zeitpunkt
    using namespace std::chrono;
    constexpr std::chrono::years ys = 2025y - 2020y; // Überladung (4)
    static_assert(ys == std::chrono::years(5));
}

Siehe auch

erhöht oder verringert den Monat
(öffentliche Elementfunktion von std::chrono::month )
addiert oder subtrahiert eine Anzahl von Monaten
(öffentliche Elementfunktion von std::chrono::month )