std::chrono:: operator+, std::chrono:: operator- (std::chrono::year_month_day_last)
From cppreference.net
<
cpp
|
chrono
|
year month day last
1,2)
Добавляет
dm.
count
(
)
месяцев к дате, представленной
ymdl
. Результат имеет те же
year()
и
month()
, что и
std::
chrono
::
year_month
(
ymdl.
year
(
)
, ymdl.
month
(
)
)
+
dm
.
3,4)
Добавляет
dy.
count
(
)
лет к дате, представленной
ymdl
. Результат эквивалентен
std::
chrono
::
year_month_day_last
(
ymdl.
year
(
)
+
dy, ymdl.
month_day_last
(
)
)
.
5)
Вычитает
dm.
count
(
)
месяцев из даты, представленной
ymdl
. Эквивалентно
ymdl
+
-
dm
.
6)
Вычитает
dy.
count
(
)
лет из даты, представленной
ymdl
. Эквивалентно
ymdl
+
-
dy
.
Для длительностей, которые конвертируются как в
std::chrono::years
, так и в
std::chrono::months
, перегрузки
years
(3,4,6)
имеют приоритет, если вызов иначе был бы неоднозначным.
Пример
Запустить этот код
#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)); }
Вывод:
2020/Nov/last 2030/Nov/last 2030/May/last