Scroll to navigation

std::chrono::operator+,std::chrono::operator-(std::chrono::year)(3) C++ Standard Libary std::chrono::operator+,std::chrono::operator-(std::chrono::year)(3)

NAME

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

Synopsis


constexpr std::chrono::year operator+( const std::chrono::year& y, (1) (since C++20)
const std::chrono::years& ys ) noexcept;
constexpr std::chrono::year operator+( const std::chrono::years&
ys, (2) (since C++20)
const std::chrono::year& y ) noexcept;
constexpr std::chrono::year operator-( const std::chrono::year& y, (3) (since C++20)
const std::chrono::years& ys ) noexcept;
constexpr std::chrono::years operator-( const std::chrono::year&
y1, (4) (since C++20)
const std::chrono::year& y2 ) noexcept;


1-2) Adds ys.count() years to y.
3) Subtracts ys.count() years from y.
4) Returns the difference in years between y1 and y2.

Return value


1-2) std::chrono::year(int(y) + ys.count())
3) std::chrono::year(int(y) - ys.count())
4) std::chrono::years(int(y1) - int(y2))

Notes


If the resulting year value for (1-3) is outside the range [-32767,32767], the
actual value stored is unspecified.


The result of subtracting two year values is a duration of type std::chrono::years.
This duration unit represents the length of the average Gregorian year, and the
resulting duration bears no relationship to the number of days in the particular
years represented by the operands. For example, the result of 2018y - 2017y is
std::chrono::years(1), which represents 365.2425 days, not 365 days.

Example

// Run this code


#include <cassert>
#include <chrono>


int main()
{
std::chrono::year y {2020};


y = y + std::chrono::years(12);
assert(y == std::chrono::year(2032));


y = y - std::chrono::years(33);
assert(y == std::chrono::year(1999));


constexpr std::chrono::years ys = std::chrono::year(2025) - std::chrono::year(2020);
static_assert(ys == std::chrono::years(5));
}

See also


operator++
operator++(int) increments or decrements the month
operator-- (public member function of std::chrono::month)
operator--(int)
operator+= adds or subtracts a number of months
operator-= (public member function of std::chrono::month)

2022.07.31 http://cppreference.com