Namespaces
Variants

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

From cppreference.net
constexpr std:: chrono :: year_month operator + ( const std:: chrono :: year_month & ym,
const std:: chrono :: years & dy ) noexcept ;
(1) (depuis C++20)
constexpr std:: chrono :: year_month operator + ( const std:: chrono :: years & dy,
const std:: chrono :: year_month & ym ) noexcept ;
(2) (depuis C++20)
constexpr std:: chrono :: year_month operator + ( const std:: chrono :: year_month & ym,
const std:: chrono :: months & dm ) noexcept ;
(3) (depuis C++20)
constexpr std:: chrono :: year_month operator + ( const std:: chrono :: months & dm,
const std:: chrono :: year_month & ym ) noexcept ;
(4) (depuis C++20)
constexpr std:: chrono :: year_month operator - ( const std:: chrono :: year_month & ym,
const std:: chrono :: years & dy ) noexcept ;
(5) (depuis C++20)
constexpr std:: chrono :: year_month operator - ( const std:: chrono :: year_month & ym,
const std:: chrono :: months & dm ) noexcept ;
(6) (depuis C++20)
constexpr std:: chrono :: months operator - ( const std:: chrono :: year_month & ym1,
const std:: chrono :: year_month & ym2 ) noexcept ;
(7) (depuis C++20)
1,2) Ajoute dy. count ( ) années à ym .
3,4) Ajoute dm. count ( ) mois à ym .
5) Soustrait dy. count ( ) années de ym .
6) Soustrait dm. count ( ) mois de ym .
7) Retourne la différence en mois entre les deux points temporels représentés par ym1 et ym2 .

Pour les durées qui sont convertibles à la fois en std::chrono::years et en std::chrono::months , les surcharges de years (1,2,5) sont préférées si l'appel serait autrement ambigu.

Table des matières

Valeur de retour

1,2) std:: chrono :: year_month ( ym. year ( ) + dy, ym. month ( ) )
3,4) Une valeur year_month z telle que z - ym == dm et z. ok ( ) == true .
5) ym + - dy
6) ym + - dm
**Note:** Le texte à traduire était uniquement le numéro "6)" qui a été conservé tel quel car il s'agit d'un identifiant numérique. Le contenu dans les balises ` ` a été préservé conformément aux instructions, car il s'agit de code C++ (variables `ym` et `dm` avec opérateurs `+` et `-`).
7)
ym1. year ( ) - ym2. year ( ) + std:: chrono :: months ( int ( unsigned ( ym1. month ( ) ) ) -
int ( unsigned ( ym2. month ( ) ) ) )

Notes

Le résultat de la soustraction de deux valeurs year_month est une durée de type std::chrono::months . Cette unité de durée représente la longueur moyenne d'un mois grégorien (30,436875 jours), et la durée résultante n'a aucun rapport avec le nombre réel de jours dans la période concernée. Par exemple, le résultat de 2017y / 3 - 2017y / 2 est std:: chrono :: months ( 1 ) , même si février 2017 ne contient que 28 jours.

Exemple

#include <cassert>
#include <chrono>
int main()
{
    auto ym{std::chrono::year(2021)/std::chrono::July};
    ym = ym + std::chrono::months(14);
    assert(ym.month() == std::chrono::September);
    assert(ym.year() == std::chrono::year(2022));
    ym = ym - std::chrono::years(3);
    assert(ym.month() == std::chrono::month(9));
    assert(ym.year() == std::chrono::year(2019));
    ym = ym + (std::chrono::September - std::chrono::month(2));
    assert(ym.month() == std::chrono::April);
    assert(ym.year() == std::chrono::year(2020));
}

Voir aussi

modifie le year_month d'un certain nombre de mois ou d'années
(fonction membre publique)