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) (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) Añade 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 .

Contenidos

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 resultante del año para (1-3) está fuera del rango [ - 32767 , 32767 ] , el valor real almacenado no está especificado.

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 longitud del año gregoriano promedio, y la duración resultante no guarda 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 = std::chrono::years(12) + y; // sobrecarga (2): duración + punto temporal
    assert(y == std::chrono::year(2032));
    y = y - std::chrono::years(33); // sobrecarga (3): punto temporal - duración
    assert(y == std::chrono::year(1999));
    // y = std::chrono::years(33) - y; // no soportado: duración - punto temporal
    using namespace std::chrono;
    constexpr std::chrono::years ys = 2025y - 2020y; // sobrecarga (4)
    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 )