Namespaces
Variants

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

From cppreference.net
Definido en el encabezado <chrono>
(desde C++20)
(desde C++20)
(desde C++20)
(desde C++20)
(desde C++20)
(desde C++20)
1,2) Agrega dm. count ( ) meses a la fecha representada por ymdl . El resultado tiene el mismo year() y month() que std:: chrono :: year_month ( ymdl. year ( ) , ymdl. month ( ) ) + dm .
3,4) Añade dy. count ( ) años a la fecha representada por ymdl . El resultado es equivalente a std:: chrono :: year_month_day_last ( ymdl. year ( ) + dy, ymdl. month_day_last ( ) ) .
5) Resta dm. count ( ) meses de la fecha representada por ymdl . Equivalente a ymdl + - dm .
6) Resta dy. count ( ) años de la fecha representada por ymdl . Equivalente a ymdl + - dy .

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

Ejemplo

#include <cassert>
#include <chrono>
#include <iostream>
int main()
{
    auto ymdl{11/std::chrono::last/2020};
    std::cout << ymdl << '\n';
    ymdl = std::chrono::years(10) + ymdl;
    std::cout << ymdl << '\n';
    assert(ymdl == std::chrono::day(30)/
                   std::chrono::November/
                   std::chrono::year(2030));
    ymdl = ymdl - std::chrono::months(6);
    std::cout << ymdl << '\n';
    assert(ymdl == std::chrono::day(31)/
                   std::chrono::May/
                   std::chrono::year(2030));
}

Salida:

2020/Nov/last
2030/Nov/last
2030/May/last