Поделиться через


Класс year_month

Представляет месяц и год. День не указан.

Синтаксис

class year_month; // C++20

Участники

Имя Описание
Конструкторы Создание year_month
year Возвращает год.
month Возвращает месяц.
ok Убедитесь, что year значения и month значения находятся в допустимом диапазоне.
operator+= Добавьте указанное количество месяцев или лет.
operator-= Вычитает указанное количество месяцев или лет.

Не являющиеся членами

Имя Описание
from_stream year_month Анализ из потока с помощью указанного формата
operator+ Добавьте месяцы и(или) годы.
operator- Вычитайте месяцы и(или) годы.
operator== Определите, равны ли два year_month значения.
operator<=> Сравните два year_month значения. Операторы >, >=, <=, <, != синтезируются компилятором.
operator<< Выводится year_month в поток.

Требования

Заголовок: <chrono> (с C++20)

Пространство имен: std::chrono

Параметр компилятора: /std:c++latest

Конструкторы

Создайте year_month

1) year_month() = default;
2) constexpr year_month(const year& y, const month& m) noexcept;

Параметры

y
Значение типа year.

m
Значение типа month.

Замечания

1) Конструктор по умолчанию не инициализирует year или month значение.
2) Создание year_month с указанными значениями.

Сведения о синтаксисе C++20 для указания дат см. в разделе operator/

Пример. Создание year_month

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month ym{2021y / June};

    std::cout << ym;
    return 0;
}
2021/Jun

month

Получите месяц.

constexpr month month() const noexcept;

Возвращаемое значение

Значение типа month.

year

Получите год.

constexpr year year() const noexcept;

Возвращаемое значение

year.

ok

Проверьте, есть ли значение года и месяца, хранящиеся в этом year_month диапазоне.

constexpr bool ok() const noexcept;

Возвращаемое значение

trueyear_month Если значения года и месяца находятся в допустимом диапазоне. В противном случае — false.

operator+=

Добавьте к этому year_monthмесяцы или годы.

1) constexpr year_month& operator+=(const months& dm) noexcept;
2) constexpr year_month& operator+=(const years& dy) noexcept;

Параметры

dm
Количество добавленных месяцев.

dy
Количество добавляемых лет.

Возвращаемое значение

*this, который отражает результат добавления.

Пример: operator +=

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month ym{2021y / June};

    std::cout << ym << '\n';

    ym += months{2};
    ym += years{1};

    std::cout << ym;
    
    return 0;
}
2021/Jun
2022/Aug

operator-=

Вычитайте месяцы или годы из этого year_month.

1) constexpr year_month& operator-=(const months& dm) noexcept;
2) constexpr year_month& operator-=(const years& dy) noexcept;

Параметры

dm
Количество месяцев для вычитания.

dy
Количество лет для вычитания.

Возвращаемое значение

*this, который отражает результат вычитания.

Пример: operator -=

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month ym{2021y / June};

    std::cout << ym << '\n';

    ym -= months{2};
    ym -= years{1};

    std::cout << ym;
    
    return 0;
}
2021/Jun
2020/Apr

См. также

<chrono>
year
year_month_day
year_month_day_last
year_month_weekday
year_month_weekday_last
operator/
Справочник по файлам заголовков