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) (desde C++20)
constexpr std:: chrono :: year_month operador + ( const std:: chrono :: years & dy,
const std:: chrono :: year_month & ym ) noexcept ;
(2) (desde C++20)
constexpr std:: chrono :: year_month operator + ( const std:: chrono :: year_month & ym,
const std:: chrono :: months & dm ) noexcept ;
(3) (desde C++20)
constexpr std:: chrono :: year_month operador + ( const std:: chrono :: months & dm,
const std:: chrono :: year_month & ym ) noexcept ;
(4) (desde C++20)
constexpr std:: chrono :: year_month operador - ( const std:: chrono :: year_month & ym,
const std:: chrono :: years & dy ) noexcept ;
(5) (desde C++20)
constexpr std:: chrono :: year_month operador - ( const std:: chrono :: year_month & ym,
const std:: chrono :: months & dm ) noexcept ;
(6) (desde C++20)
constexpr std:: chrono :: months operador - ( const std:: chrono :: year_month & ym1,
const std:: chrono :: year_month & ym2 ) noexcept ;
(7) (desde C++20)
1,2) Añade dy. count ( ) años a ym .
3,4) Agrega dm. count ( ) meses a ym .
5) Resta dy. count ( ) años de ym .
6) Resta dm. count ( ) meses de ym .
7) Devuelve la diferencia en meses entre los dos puntos temporales representados por ym1 y ym2 .

Para duraciones que son convertibles tanto a std::chrono::years como a std::chrono::months , las sobrecargas de years (1,2,5) tienen preferencia si la llamada sería de otro modo ambigua.

Contenidos

Valor de retorno

1,2) std:: chrono :: year_month ( ym. year ( ) + dy, ym. month ( ) )
3,4) Un valor year_month z tal que z - ym == dm y z. ok ( ) == true .
5) ym + - dy
6) ym + - dm
7)
ym1. year ( ) - ym2. year ( ) + std:: chrono :: months ( int ( unsigned ( ym1. month ( ) ) ) -
int ( unsigned ( ym2. month ( ) ) ) )

Notas

El resultado de restar dos valores year_month es una duración de tipo std::chrono::months . Esta unidad de duración representa la longitud del mes gregoriano promedio (30.436875 días), y la duración resultante no guarda relación con el número real de días en el período de tiempo en cuestión. Por ejemplo, el resultado de 2017y / 3 - 2017y / 2 es std:: chrono :: months ( 1 ) , aunque febrero de 2017 solo contiene 28 días.

Ejemplo

#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));
}

Véase también

modifica el year_month por cierta cantidad de meses o años
(función miembro pública)