std::chrono:: operator+, std::chrono:: operator- (std::chrono::weekday)
From cppreference.net
|
定义于头文件
<chrono>
|
||
|
constexpr
std::
chrono
::
weekday
operator
+
(
const
std::
chrono
::
weekday
&
wd,
const std:: chrono :: days & d ) noexcept ; |
(1) | (C++20 起) |
|
constexpr
std::
chrono
::
weekday
operator
+
(
const
std::
chrono
::
days
&
d,
const std:: chrono :: weekday & wd ) noexcept ; |
(2) | (C++20 起) |
|
constexpr
std::
chrono
::
weekday
operator
-
(
const
std::
chrono
::
weekday
&
wd,
const std:: chrono :: days & d ) noexcept ; |
(3) | (C++20 起) |
|
constexpr
std::
chrono
::
days
operator
-
(
const
std::
chrono
::
weekday
&
wd1,
const std:: chrono :: weekday & wd2 ) noexcept ; |
(4) | (C++20 起) |
1,2)
将
d.
count
(
)
天添加到
wd
。结果中的星期值通过先计算
static_cast
<
long
long
>
(
wd.
c_encoding
(
)
)
+
d.
count
(
)
再对 7 取模得到范围在
[
0
,
6
]
的整数值来确定。
3)
从
wd
减去
d.
count
(
)
天。等价于
return
wd
+
-
d
;
。
4)
若
wd1.
ok
(
)
与
wd2.
ok
(
)
均为
true
,则返回
std::chrono::days
值
d
,使得
d.
count
(
)
的值域为
[
0
,
6
]
且满足
wd2
+
d
==
wd1
。否则返回值未指定。
目录 |
返回值
1-3)
一个
std::chrono::weekday
对象,持有按上述方式计算出的星期值。
4)
表示
wd1
与
wd2
之间时间间隔的
std::chrono::days
对象。
注释
只要计算不发生溢出,
(1-3)
始终会返回有效的
weekday
,即使
wd.
ok
(
)
为
false
。
示例
运行此代码
#include <chrono> #include <iostream> int main() { std::cout << std::boolalpha; std::chrono::weekday wd{4}; wd = wd + std::chrono::days(2); std::cout << (wd == std::chrono::weekday(6)) << ' ' << (wd == std::chrono::Saturday) << ' '; wd = wd - std::chrono::days(3); std::cout << (wd == std::chrono::weekday(3)) << ' ' << (wd == std::chrono::Wednesday) << ' '; wd = std::chrono::Tuesday; wd = wd + std::chrono::days{8}; // (((2 + 8) == 10) % 7) == 3; std::cout << (wd == std::chrono::Wednesday) << ' '; wd = wd + (std::chrono::Sunday - std::chrono::Thursday); // (3 + 3) == 6 std::cout << (wd == std::chrono::Saturday) << '\n'; }
输出:
true true true true true true
参见
|
递增或递减星期值
(公开成员函数) |
|
|
增加或减少指定天数
(公开成员函数) |