std::chrono::year_month::operator+=, std::chrono::year_month::operator-=
From cppreference.com
 
 
 < cpp | chrono | year month 
 
 
 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 
 
 
 Member functions
year_month::operator+=year_month::operator-=
 Nonmember functions
 Helper classes
(C++26)
constexpr std::chrono::year_month &
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 &
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 &
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 &
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> int main() { auto ym{std::chrono::day (1)/7/2023}; ym -= std::chrono::years {2}; assert (ym.month() == std::chrono::July ); assert (ym.year() == std::chrono::year (2021)); ym += std::chrono::months {7}; assert (ym.month() == std::chrono::month (2)); assert (ym.year() == std::chrono::year (2022)); }