std::chrono:: operator+, std::chrono:: operator- (std::chrono::year_month)
|
constexpr
std::
chrono
::
year_month
operator
+
(
const
std::
chrono
::
year_month
&
ym,
const std:: chrono :: years & dy ) noexcept ; |
(1) | (начиная с C++20) |
|
constexpr
std::
chrono
::
year_month
operator
+
(
const
std::
chrono
::
years
&
dy,
const std:: chrono :: year_month & ym ) noexcept ; |
(2) | (начиная с C++20) |
|
constexpr
std::
chrono
::
year_month
operator
+
(
const
std::
chrono
::
year_month
&
ym,
const std:: chrono :: months & dm ) noexcept ; |
(3) | (начиная с C++20) |
|
constexpr
std::
chrono
::
year_month
operator
+
(
const
std::
chrono
::
months
&
dm,
const std:: chrono :: year_month & ym ) noexcept ; |
(4) | (начиная с C++20) |
|
constexpr
std::
chrono
::
year_month
operator
-
(
const
std::
chrono
::
year_month
&
ym,
const std:: chrono :: years & dy ) noexcept ; |
(5) | (начиная с C++20) |
|
constexpr
std::
chrono
::
year_month
operator
-
(
const
std::
chrono
::
year_month
&
ym,
const std:: chrono :: months & dm ) noexcept ; |
(6) | (начиная с C++20) |
|
constexpr
std::
chrono
::
months
operator
-
(
const
std::
chrono
::
year_month
&
ym1,
const std:: chrono :: year_month & ym2 ) noexcept ; |
(7) | (начиная с C++20) |
Для длительностей, которые конвертируются как в
std::chrono::years
, так и в
std::chrono::months
, перегрузки
years
(1,2,5)
имеют приоритет, если вызов иначе был бы неоднозначным.
Содержание |
Возвращаемое значение
year_month
z
такое, что
z
-
ym
==
dm
и
z.
ok
(
)
==
true
.
ym1. year ( ) - ym2. year ( ) + std:: chrono :: months ( int ( unsigned ( ym1. month ( ) ) ) -
int ( unsigned ( ym2. month ( ) ) ) )
Примечания
Результат вычитания двух значений
year_month
представляет собой длительность типа
std::chrono::months
. Эта единица длительности соответствует средней продолжительности григорианского месяца (30,436875 дней), и результирующая длительность не связана с фактическим количеством дней в рассматриваемом периоде времени. Например, результат выражения
2017y
/
3
-
2017y
/
2
равен
std::
chrono
::
months
(
1
)
, несмотря на то, что февраль 2017 года содержит только 28 дней.
Пример
#include <cassert> #include <chrono> int main() { auto ym{std::chrono::year(2021)/std::chrono::July}; ym = ym + std::chrono::months(14); assert(ym.month() == std::chrono::September); assert(ym.year() == std::chrono::year(2022)); ym = ym - std::chrono::years(3); assert(ym.month() == std::chrono::month(9)); assert(ym.year() == std::chrono::year(2019)); ym = ym + (std::chrono::September - std::chrono::month(2)); assert(ym.month() == std::chrono::April); assert(ym.year() == std::chrono::year(2020)); }
Смотрите также
изменяет
year_month
на указанное количество месяцев или лет
(public member function) |