Namespaces
Variants

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

From cppreference.net
(Примечание: В данном фрагменте HTML отсутствует текстовое содержимое для перевода - присутствуют только HTML-теги и атрибуты, которые согласно инструкциям не подлежат переводу)
(начиная с C++20)
(начиная с C++20)
(начиная с C++20)
(начиная с C++20)
(начиная с C++20)
(начиная с C++20)
1,2) Добавляет dm. count ( ) месяцев к дате, представленной ymwdl . Результат имеет тот же year() и month() , что и std:: chrono :: year_month ( ymwdl. year ( ) , ymwdl. month ( ) ) + dm , и тот же weekday() , что и ymwdl .
3,4) Добавляет dy. count ( ) лет к дате, представленной ymwdl . Результат эквивалентен std:: chrono :: year_month_weekday_last ( ymwdl. year ( ) + dy, ymwdl. month ( ) , ymwd. weekday_last ( ) ) .
5) Вычитает dm. count ( ) месяцев из даты, представленной ymwdl . Эквивалентно ymwdl + - dm .
6) Вычитает dy. count ( ) лет из даты, представленной ymwdl . Эквивалентно ymwdl + - dy .

Для длительностей, которые конвертируются как в std::chrono::years , так и в std::chrono::months , перегрузки years (3,4,6) имеют приоритет, если вызов иначе был бы неоднозначным.

Пример

#include <cassert>
#include <chrono>
using namespace std::chrono;
int main()
{
    constexpr auto ymwdl1{Tuesday[last]/11/2021};
    auto ymwdl2 = ymwdl1;
    ymwdl2 = std::chrono::months(12) + ymwdl2;
    ymwdl2 = ymwdl2 - std::chrono::years(1);
    assert(ymwdl1 == ymwdl2);
}