Namespaces
Variants

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

From cppreference.net
(C++20以降)
(C++20以降)
(C++20以降)
(C++20以降)
(C++20以降)
(C++20以降)
1,2) dm. count ( ) ヶ月を ymwdl が表す日付に加算します。結果は std:: chrono :: year_month ( ymwdl. year ( ) , ymwdl. month ( ) ) + dm と同じ year() および month() を持ち、 ymwdl と同じ weekday() を持ちます。
3,4) dy. count ( ) 年分の年数を、 ymwdl が表す日付に加算します。結果は std:: chrono :: year_month_weekday_last ( ymwdl. year ( ) + dy, ymwdl. month ( ) , ymwd. weekday_last ( ) ) と等価です。
5) 指定された日付から dm. count ( ) ヶ月を減算します。 ymwdl で表される日付から dm の月数を減算します。 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);
}