Класс month
Представляет месяц года. Например, июль.
Синтаксис
class month; // C++20
Замечания
Обычно month
содержит значения в диапазоне [1, 12]. Он также может содержать не отрицательные значения за пределами этого диапазона.
См . константы месяца ниже для констант, которые можно использовать с классом month
.
Участники
Имя | Описание |
---|---|
Конструкторы | Создайте month |
ok |
Убедитесь, что значение месяца находится в допустимом диапазоне [1,12]. |
operator++ |
Добавим month . |
operator+= |
Добавьте в это month число месяцев. |
operator-- |
Это уменьшается month . |
operator-= |
Вычитает указанное количество месяцев из этого month . |
operator unsigned |
month Получите значение. |
Не являющиеся членами
Имя | Описание |
---|---|
from_stream |
Синтаксический month анализ из заданного потока с помощью указанного формата. |
operator+ |
Добавьте указанное количество месяцев к этому month , возвращая новый month экземпляр. |
operator- |
Вычитает указанное количество месяцев из этого месяца. Возвращает новый экземпляр month . |
operator== |
Определите, равны ли два месяца. |
operator<=> |
Сравните этот месяц с другим месяцем. Операторы >, >=, <=, <, != синтезируются компилятором. |
operator<< |
Выводит объект в заданный month поток. |
Требования
Заголовок: <chrono>
(с C++20)
Пространство имен: std::chrono
Параметр компилятора: /std:c++latest
Конструкторы
Создайте month
1) month() = default;
2) explicit constexpr month(unsigned m) noexcept;
Параметры
m
Создание со значением month
m
.
Замечания
1) Конструктор по умолчанию не инициализирует значение дня.
2) Создание month
значения дня, инициализированного в m
.
ok
Проверяет, находится ли значение, хранящееся в month
, в допустимом диапазоне.
constexpr bool ok() const noexcept;
Возвращаемое значение
true
Значение месяца в диапазоне [1,12]. В противном случае — false
.
operator++
Увеличьте значение месяца.
1) constexpr month& operator++() noexcept;
2) constexpr month operator++(int) noexcept;
Возвращаемое значение
1) Ссылка на *this
месяц после его увеличения (добавочный шаг постфикса).
2) Копия , month
прежде чем она была добавлена (добавочный префикс).
Пример: operator++
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
month m{ January };
month m2{4}; // April
std::cout << m << " " << ++m << "\n"; // constexpr month& operator++() noexcept
std::cout << m << " " << m++ << "\n"; // constexpr month operator++(int) noexcept
std::cout << m << "\n";
std::cout << m2 << "\n";
return 0;
}
Jan Feb
Feb Feb
Mar
Apr
Замечания
Если результат превышает 12, оно равно 1.
operator--
Вычитает 1 из значения месяца.
1) constexpr month& operator--() noexcept;
2) constexpr month operator--(int) noexcept;
Возвращаемое значение
1) Ссылка на *this
month
после ее уменьшения (постфикс декремента).
2) Копия до его уменьшения month
(префикс декремента).
Пример: operator--
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main()
{
month m{May};
cout << m << " " << --m << "\n"; // constexpr month& operator++() noexcept
cout << m << " " << m-- << "\n"; // constexpr month operator++(int) noexcept
cout << m << "\n";
return 0;
}
May Apr
Apr Apr
Mar
Замечания
Если отложенный результат меньше 1, он имеет значение 12.
operator+=
Добавьте месяцы к этому month
.
constexpr month& operator+=(const months& m) noexcept;
Параметры
m
Количество добавленных месяцев.
Возвращаемое значение
*this
operator-=
Вычитается months
из этого month
.
constexpr month& operator-=(const months& m) noexcept;
Параметры
m
Месяцы вычитания.
Возвращаемое значение
*this
.
operator unsigned
Получите неподписаемое month
значение.
explicit constexpr operator unsigned() const noexcept;
Возвращаемое значение
Неподписаемое значение этого объекта month
Пример: operator unsigned()
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
month m{July};
unsigned monthValue = static_cast<unsigned>(m);
std::cout << monthValue << "\n";
return 0;
}
7
Константы месяца
(C++20) Заголовок <chrono>
определяет следующие константы, которые можно использовать для month
повышения удобства, безопасности типов и удобства обслуживания кода. Эти константы находятся в области, когда std::chrono
находится в области.
// Calendrical constants
inline constexpr month January{1};
inline constexpr month February{2};
inline constexpr month March{3};
inline constexpr month April{4};
inline constexpr month May{5};
inline constexpr month June{6};
inline constexpr month July{7};
inline constexpr month August{8};
inline constexpr month September{9};
inline constexpr month October{10};
inline constexpr month November{11};
inline constexpr month December{12};
См. также
<chrono>
month_day
Класс
month_day_last
Класс
month_weekday
Класс
Класс month_weekday_last