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
Ejecuta este código
#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)
|