std::chrono:: operator+, std::chrono:: operator- (std::chrono::month)
|
定义于头文件
<chrono>
|
||
|
constexpr
std::
chrono
::
month
operator
+
(
const
std::
chrono
::
month
&
m,
const std:: chrono :: months & ms ) noexcept ; |
(1) | (C++20 起) |
|
constexpr
std::
chrono
::
month
operator
+
(
const
std::
chrono
::
months
&
ms,
const std:: chrono :: month & m ) noexcept ; |
(2) | (C++20 起) |
|
constexpr
std::
chrono
::
month
operator
-
(
const
std::
chrono
::
month
&
m,
const std:: chrono :: months & ms ) noexcept ; |
(3) | (C++20 起) |
|
constexpr
std::
chrono
::
months
operator
-
(
const
std::
chrono
::
month
&
m1,
const std:: chrono :: month & m2 ) noexcept ; |
(4) | (C++20 起) |
[
0
,
11
]
的整数,然后加 1。
[
0
,
11
]
且满足
m2
+
m
==
m1
。否则返回值未指定。
目录 |
返回值
注释
只要计算不发生溢出, (1-3) 即使当 m. ok ( ) 为 false 时也始终返回有效的月份。
两个
month
值相减的结果是类型为
std::chrono::months
的时间长度。该时长单位表示公历月的平均长度,所得时长与操作数所代表具体月份的天数无关。例如,
std::
chrono
::
seconds
(
std::
chrono
::
April
-
std::
chrono
::
March
)
的结果并非三月的秒数(
2678400s
),而是
2629746s
(30.436875天)。
示例
#include <cassert> #include <chrono> int main() { std::chrono::month m{6}; m = m + std::chrono::months(2); assert(m == std::chrono::month(8)); m = m - std::chrono::months(3); assert(m == std::chrono::month(5)); constexpr std::chrono::months ms = std::chrono::month(8) - std::chrono::month(6); static_assert(ms == std::chrono::months(2)); }
参见
|
递增或递减月份
(公开成员函数) |
|
|
增加或减去指定月数
(公开成员函数) |