std::chrono::month::operator+=, std::chrono::month::operator-=

来自cppreference.com
< cpp‎ | chrono‎ | month
 
 
 
 
constexpr std::chrono::month& operator+=(const std::chrono::months& m) noexcept;
(1) (C++20 起)
constexpr std::chrono::month& operator+=(const std::chrono::months& m) noexcept;
(2) (C++20 起)

对月份值加或减 m.count() ,将结果对 12 取余,规约成范围 [1, 12] 中的整数。

1) 进行 *this = *this + m;
2) 进行 *this = *this - m;

返回值

到修改后的此 month 的引用。

注意

调用这些函数之一后,若运算中不出现溢出则 ok() 始终为 true 。

示例

#include <iostream>
#include <chrono>
 
int main()
{
    std::cout << std::boolalpha;
 
    std::chrono::month m {6};
    m += std::chrono::months(2);
    std::cout << (m == std::chrono::month(8)) << ' '
              << (m == std::chrono::August) << ' ';
 
    m -= std::chrono::months(3);
    std::cout << (m == std::chrono::month(5)) << ' '
              << (m == std::chrono::May) << ' ';
 
    m = std::chrono::October;
    m += std::chrono::months{8}; // ((10 += 8 == 18) % 12) == 6;
    std::cout << (m == std::chrono::June) << ' ';
 
    m -= std::chrono::months{std::chrono::December - std::chrono::February}; // -= 10
    // (6 -= 10) == -4; -4 % 12 == (12-4) == 8
    std::cout << (m == std::chrono::August) << '\n';
}

输出:

true true true true true true


参阅

自增或自减 month
(公开成员函数)
进行 month 上的算术
(函数)