命名空间
变体
操作

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

来自 cppreference.cn
< cpp‎ | chrono‎ | weekday
 
 
 
 
定义于头文件 <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。结果中保存的 weekday 值通过首先求值 static_cast<long long>(wd.c_encoding()) + d.count() 并将其模 7 约简到范围 [06] 内的整数来计算。
3)wd 中减去 d.count() 天。等价于 return wd + -d;
4) 如果 wd1.ok()wd2.ok() 均为 true,则返回 std::chrono::daysd,使得 d.count() 在范围 [06] 内,且 wd2 + d == wd1。否则,返回的值未指定。

目录

[编辑] 返回值

1-3) 一个 std::chrono::weekday,保有如上所述计算的 weekday 值。
4) 一个 std::chrono::days,表示 wd1wd2 之间的距离。

[编辑] 注解

只要计算不溢出,(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

[编辑] 参见

递增或递减 weekday
(公有成员函数) [编辑]
增加或减少天数
(公有成员函数) [编辑]