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) (depuis C++20)
constexpr std:: chrono :: year operator + ( const std:: chrono :: years & ys,
const std:: chrono :: year & y ) noexcept ;
(2) (depuis C++20)
constexpr std:: chrono :: year operator - ( const std:: chrono :: year & y,
const std:: chrono :: years & ys ) noexcept ;
(3) (depuis C++20)
constexpr std:: chrono :: years operator - ( const std:: chrono :: year & y1,
const std:: chrono :: year & y2 ) noexcept ;
(4) (depuis C++20)
1,2) Ajoute ys. count ( ) années à y .
3) Soustrait ys. count ( ) années de y .
4) Retourne la différence en années entre y1 et y2 .

Table des matières

Valeur de retour

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 ) )

Notes

Si la valeur d'année résultante pour (1-3) est en dehors de l'intervalle [ - 32767 , 32767 ] , la valeur réellement stockée n'est pas spécifiée.

Le résultat de la soustraction de deux valeurs de type year est une durée de type std::chrono::years . Cette unité de durée représente la longueur de l'année grégorienne moyenne, et la durée résultante n'a aucun rapport avec le nombre de jours dans les années particulières représentées par les opérandes. Par exemple, le résultat de 2018y - 2017y est std:: chrono :: years ( 1 ) , ce qui représente 365,2425 jours, et non 365 jours.

Exemple

#include <cassert>
#include <chrono>
int main()
{
    std::chrono::year y{2020};
    y = std::chrono::years(12) + y; // surcharge (2) : durée + point temporel
    assert(y == std::chrono::year(2032));
    y = y - std::chrono::years(33); // surcharge (3) : point temporel - durée
    assert(y == std::chrono::year(1999));
    // y = std::chrono::years(33) - y; // non supporté : durée - point temporel
    using namespace std::chrono;
    constexpr std::chrono::years ys = 2025y - 2020y; // surcharge (4)
    static_assert(ys == std::chrono::years(5));
}

Voir aussi

incrémente ou décrémente le mois
(fonction membre publique de std::chrono::month )
ajoute ou soustrait un nombre de mois
(fonction membre publique de std::chrono::month )