# std::chrono::operator+, std::chrono::operator- (std::chrono::day)

< cpp‎ | chrono‎ | day

constexpr std::chrono::day operator+(const std::chrono::day& d, const std::chrono::days& ds) noexcept; | (1) | (C++20 起)
constexpr std::chrono::day operator+(const std::chrono::days& ds, const std::chrono::day& d) noexcept; | (2) | (C++20 起)
constexpr std::chrono::day operator-(const std::chrono::day& d, const std::chrono::days& ds) noexcept; | (3) | (C++20 起)
constexpr std::chrono::days operator-(const std::chrono::day& x, const std::chrono::day& y) noexcept; | (4) | (C++20 起)

1-2) 加 ds.count() 日到 `d` 。
3) 从 `d` 减去 ds.count() 日。
4) 以 days 计算二个 `day` `x` 与 `y` 间的差。

### 返回值

1-2) std::chrono::day(unsigned(d) + ds.count())
3) std::chrono::day(unsigned(d) - ds.count())
4) std::chrono::days(int(unsigned(x)) - int(unsigned(y)))

### 注意

对于 (1-3) ，若结果会在范围 [0, 255] 外，则实际存储值未指定。

### 示例

    #include <chrono>
    #include <cassert>

    int main()
    {
        std::chrono::day d {15};

        d = d + std::chrono::days(2);
        assert(d == std::chrono::day(17));

        d = d - std::chrono::days(3);
        assert(d == std::chrono::day(14));

        constexpr std::chrono::days ds = std::chrono::day(16) - std::chrono::day(14);
        static_assert(ds == std::chrono::days(2));
    }

### 参阅

operator++operator++(int)operator--operator--(int) | 自增或自减 day (公开成员函数)
operator+=operator-= | 加或减日数 (公开成员函数)