Namespaces
Variants

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) wd d. count ( ) 일을 추가합니다. 결과에 보관된 요일 값은 먼저 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) std::chrono::days 를 나타내는 값으로 wd1 wd2 사이의 거리를 표현합니다.

참고 사항

계산이 오버플로되지 않는 한, (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

참고 항목

요일을 증가 또는 감소시킴
(public member function)
일수 더하기 또는 빼기
(public member function)