Espacios de nombres
Variantes
Acciones
 
 
Biblioteca de servicios
 
 
 
constexpr std::chrono::year operator+( const std::chrono::year& y, const std::chrono::years& ys ) noexcept;
(1) (desde C++20)
constexpr std::chrono::year operator+( const std::chrono::years& ys, const std::chrono::year& y ) noexcept;
(2) (desde C++20)
constexpr std::chrono::year operator-( const std::chrono::year& y, const std::chrono::years& ys ) noexcept;
(3) (desde C++20)
constexpr std::chrono::years operator-( const std::chrono::year& y1, const std::chrono::year& y2 ) noexcept;
(4) (desde C++20)
1-2) Agrega ys.count() años a y.
3) Resta ys.count() años de y.
4) Devuelve la diferencia en años entre y1 y y2.

Valor de retorno

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

Notas

Si el valor del año resultante para (1-3) está fuera del rango [-32767,32767], el valor real almacenado no se especifica.

El resultado de restar dos valores de tipo year es una duración de tipo std::chrono::years. Esta unidad de duración representa la duración del año gregoriano promedio, y la duración resultante no tiene relación con el número de días en los años particulares representados por los operandos. Por ejemplo, el resultado de 2018y - 2017y es std::chrono::years(1), que representa 365.2425 días, no 365 días.

Ejemplo

#include <cassert>
#include <chrono>

int main()
{
    std::chrono::year y {2020};

    y = y + std::chrono::years(12);
    assert(y == std::chrono::year(2032));

    y = y - std::chrono::years(33);
    assert(y == std::chrono::year(1999));

    constexpr std::chrono::years ys = std::chrono::year(2025) - std::chrono::year(2020);
    static_assert(ys == std::chrono::years(5));
}


Véase también

Incrementa o decrementa el mes.
(función miembro pública de std::chrono::month)
Suma o resta un número de meses.
(función miembro pública de std::chrono::month)