- Tumbleweed 2024.07.05-1.3
 - Leap-16.0
 - Leap-15.6
 
| std::chrono::operator+,std::chrono::operator-(std::chrono::weekday)(3) | C++ Standard Libary | std::chrono::operator+,std::chrono::operator-(std::chrono::weekday)(3) | 
NAME¶
std::chrono::operator+,std::chrono::operator-(std::chrono::weekday) - std::chrono::operator+,std::chrono::operator-(std::chrono::weekday)
Synopsis¶
 Defined in header <chrono>
  
   constexpr std::chrono::weekday operator+( const
  
   std::chrono::weekday& wd, (1) (since C++20)
  
   const std::chrono::days&
  
   d ) noexcept;
  
   constexpr std::chrono::weekday operator+( const std::chrono::days&
  
   d, (2) (since C++20)
  
   const
  
   std::chrono::weekday& wd ) noexcept;
  
   constexpr std::chrono::weekday operator-( const
  
   std::chrono::weekday& wd, (3) (since C++20)
  
   const std::chrono::days&
  
   d ) noexcept;
  
   constexpr std::chrono::days operator-( const std::chrono::weekday&
  
   wd1, (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.
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.
Notes¶
 As long as the computation doesn't overflow, (1-3) always return
    a valid weekday
  
   even if wd.ok() is false.
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
See also¶
 operator++
  
   operator++(int) increments or decrements the weekday
  
   operator-- (public member function)
  
   operator--(int)
  
   operator+= adds or subtracts a number of days
  
   operator-= (public member function)
| 2024.06.10 | http://cppreference.com |