std::chrono::year_month_weekday::operator+=, std::chrono::year_month_weekday::operator-=
From cppreference.com
 
 
 < cpp | chrono | year month weekday 
 
 
 C++ 
 Feature test macros (C++20)
 Concepts library (C++20)
 Metaprogramming library (C++11)
 Ranges library (C++20)
 Filesystem library (C++17)
 Concurrency support library (C++11)
 Execution control library (C++26)
Date and time library 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
(C++11)
(C++20)
  (C++20)
(C++11)
(C++11)
(C++11)
(C++20)
(C++20)
(C++20)
(C++11)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)
(C++20)(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
  (C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
std::chrono::year_month_weekday 
 
 Member functions
year_month_weekday::operator+=year_month_weekday::operator-=
 Nonmember functions
 Helper classes
constexpr std::chrono::year_month_weekday &
operator+=( const std::chrono::years & dy ) const noexcept;
 (1) 
 (since C++20) 
operator+=( const std::chrono::years & dy ) const noexcept;
constexpr std::chrono::year_month_weekday &
operator+=( const std::chrono::months & dm ) const noexcept;
 (2) 
 (since C++20) 
operator+=( const std::chrono::months & dm ) const noexcept;
constexpr std::chrono::year_month_weekday &
operator-=( const std::chrono::years & dy ) const noexcept;
 (3) 
 (since C++20) 
operator-=( const std::chrono::years & dy ) const noexcept;
constexpr std::chrono::year_month_weekday &
operator-=( const std::chrono::months & dm ) const noexcept;
 (4) 
 (since C++20) 
operator-=( const std::chrono::months & dm ) const noexcept;
Modifies the time point *this represents by the duration dy or dm.
1) Equivalent to *this = *this + dy;.
2) Equivalent to *this = *this + dm;.
3) Equivalent to *this = *this - dy;.
4) Equivalent to *this = *this - dm;.
For durations that are convertible to both std::chrono::years and std::chrono::months, the years overloads (1,3) are preferred if the call would otherwise be ambiguous.
[edit] Example
Run this code
#include <cassert> #include <chrono> #include <iostream> int main() { auto ymwi{1/std::chrono::Wednesday [2]/2021}; std::cout << ymwi << '\n'; ymwi += std::chrono::years (5); std::cout << ymwi << '\n'; assert (static_cast<std::chrono::year_month_day >(ymwi) == std::chrono::year (2026)/1/14); ymwi -= std::chrono::months (1); std::cout << ymwi << '\n'; assert (static_cast<std::chrono::year_month_day >(ymwi) == std::chrono::day (10)/12/2025); }
Output:
2021/Jan/Wed[2] 2026/Jan/Wed[2] 2025/Dec/Wed[2]