Namespaces
Variants

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

From cppreference.net
헤더 파일에 정의됨 <chrono>
constexpr std:: chrono :: month operator + ( const std:: chrono :: month & m,
const std:: chrono :: months & ms ) noexcept ;
(1) (C++20부터)
constexpr std:: chrono :: month operator + ( const std:: chrono :: months & ms,
const std:: chrono :: month & m ) noexcept ;
(2) (C++20부터)
constexpr std:: chrono :: month operator - ( const std:: chrono :: month & m,
const std:: chrono :: months & ms ) noexcept ;
(3) (C++20부터)
constexpr std:: chrono :: months operator - ( const std:: chrono :: month & m1,
const std:: chrono :: month & m2 ) noexcept ;
(4) (C++20부터)
1,2) ms. count ( ) 개월을 m 에 더합니다. 결과에 보관된 월 값은 먼저 static_cast < long long > ( unsigned ( m ) ) + ( ms. count ( ) - 1 ) 를 계산한 후, 이를 12로 모듈로 연산하여 [ 0 , 11 ] 범위의 정수로 축소하고, 그 후 1을 더하여 계산됩니다.
3) ms. count ( ) 개월을 m 에서 빼고 결과를 반환합니다. return m + - ms ; 와 동일합니다.
4) 만약 m1. ok ( ) m2. ok ( ) 가 모두 true 라면, std::chrono::months m 을 반환하며, 여기서 m. count ( ) 는 범위 [ 0 , 11 ] 내에 있고 m2 + m == m1 을 만족합니다. 그렇지 않은 경우 반환되는 값은 지정되지 않습니다.

목차

반환값

1-3) 위에서 설명한 방식으로 계산된 월 값을 보유하는 std::chrono::month 입니다.
4) std::chrono::months 사이의 거리를 나타내는 m1 m2 .

참고 사항

계산이 오버플로되지 않는 한, (1-3) m. ok ( ) false 인 경우에도 항상 유효한 월을 반환합니다.

month 값을 뺀 결과는 std::chrono::months 타입의 기간입니다. 해당 기간 단위는 평균 그레고리력 월의 길이를 나타내며, 결과 기간은 피연산자로 표현된 특정 월들의 일수와 아무런 관계가 없습니다. 예를 들어, std:: chrono :: seconds ( std:: chrono :: April - std:: chrono :: March ) 는 3월의 초 수( 2678400s )가 아니라 2629746s (30.436875일)입니다.

예제

#include <cassert>
#include <chrono>
int main()
{
    std::chrono::month m{6};
    m = m + std::chrono::months(2);
    assert(m == std::chrono::month(8));
    m = m - std::chrono::months(3);
    assert(m == std::chrono::month(5));
    constexpr std::chrono::months ms = std::chrono::month(8) - std::chrono::month(6);
    static_assert(ms == std::chrono::months(2));
}

참고 항목

월을 증가 또는 감소시킴
(public member function)
개월 수를 더하거나 뺌
(public member function)