std::chrono::operator+, std::chrono::operator- (std::chrono::weekday)
From cppreference.com
C++
Feature test macros (C++20)
Concepts library (C++20)
Metaprogramming library (C++11)
Ranges library (C++20)
Filesystem library (C++17)
Concurrency support library (C++11)
Execution control library (C++26)
Date and time library
(C++11)
(C++20)
(C++20)
(C++11)
(C++11)
(C++11)
(C++20)
(C++20)
(C++20)
(C++11)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)
(C++20)(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
std::chrono::weekday
Member functions
Nonmember functions
operator+operator-
Helper classes
(C++26)
Defined in header
<chrono>
constexpr std::chrono::weekday operator+( const std::chrono::weekday & wd,
const std::chrono::days & d ) noexcept;
(1)
(since C++20)
const std::chrono::days & d ) noexcept;
constexpr std::chrono::weekday operator+( const std::chrono::days & d,
const std::chrono::weekday & wd ) noexcept;
(2)
(since C++20)
const std::chrono::weekday & wd ) noexcept;
constexpr std::chrono::weekday operator-( const std::chrono::weekday & wd,
const std::chrono::days & d ) noexcept;
(3)
(since C++20)
const std::chrono::days & d ) noexcept;
constexpr std::chrono::days operator-( const std::chrono::weekday & wd1,
const std::chrono::weekday & wd2 ) noexcept;
(4)
(since C++20)
const std::chrono::weekday & wd2 ) noexcept;
1,2) Adds d.count() days to wd. The weekday value held in the result is computed by first evaluating static_cast<long long>(wd.c_encoding()) + d.count() and reducing it modulo 7 to an integer in the range
[
0,
6]
.3) Subtracts d.count() days from wd. Equivalent to return wd + -d;.
4) If wd1.ok() and wd2.ok() are both true, returns a std::chrono::days value d such that d.count() is in the range
[
0,
6]
and wd2 + d == wd1. Otherwise the returned value is unspecified.Contents
[edit] Return value
1-3) A std::chrono::weekday holding a weekday value calculated as described above.
4) A std::chrono::days representing the distance between wd1 and wd2.
[edit] Notes
As long as the computation doesn't overflow, (1-3) always return a valid weekday
even if wd.ok() is false.
[edit] Example
Run this code
#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'; }
Output:
true true true true true true