Класс day
Представляет день месяца. Например, 25-й день месяца.
Синтаксис
class day; // C++20
Замечания
Обычно day
содержит значения в диапазоне [1, 31]. Он может содержать неотрицательных значений за пределами этого диапазона, но поведение не указано, если он не находится в диапазоне [0, 255].
Участники
Имя | Описание |
---|---|
Конструкторы | Создайте day |
ok |
Убедитесь, что значение дня находится в допустимом диапазоне [1,31]. |
operator++ |
Добавим это day . |
operator+= |
Добавьте в это day указанное число дней. |
operator-- |
Декремент .day |
operator-= |
Вычитает указанное количество дней из этого day |
operator unsigned |
Получите значение дня в виде целого числа без знака. |
Не являющиеся членами
Имя | Описание |
---|---|
from_stream |
Синтаксический day анализ из заданного потока с помощью указанного формата. |
operator+ |
Добавьте указанное число дней в это day , возвращая новый day объект. |
operator- |
Вычитает указанное число дней из этого day , возвращая новый day объект. |
operator== |
Определяет, равны ли два экземпляра day . |
operator<=> |
Сравните это day с другим day . Операторы >, >=, <=, <, != синтезируются компилятором. |
operator<< |
Выводит объект в заданный day поток. |
operator""d |
day Создайте литерал в течение дня в месяц. |
Требования
Заголовок: <chrono>
(с C++20)
Пространство имен: std::chrono
Параметр компилятора: /std:c++latest
Конструкторы
Создает документ day
.
1) day() = default;
2) explicit constexpr day(unsigned d) noexcept;
Параметры
d
Создание со значением day
d
.
Замечания
1) Конструктор по умолчанию не инициализирует значение дня.
2) Создание day
значения дня, инициализированного в d
.
Пример. Создание day
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
day d{1}; // day 1
day d2 = 2d; // day 2
std::cout << d << ", " << d2;
return 0;
}
01, 02
ok
Проверяет, находится ли значение, хранящееся в day
, в допустимом диапазоне.
constexpr bool ok() const noexcept;
Возвращаемое значение
true
Значение дня в диапазоне [1,31]. В противном случае — false
.
operator++
Добавьте 1 к значению дня.
1) constexpr std::chrono::day& operator++() noexcept;
2) constexpr std::chrono::day operator++(int) noexcept;
Возвращаемое значение
1) Ссылка на *this
day
после ее увеличения (приращение постфикса).
2) Копия , day
прежде чем она была добавлена (добавочный префикс).
Пример: operator++
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
day d{1};
std::cout << d << " " << ++d << "\n"; // constexpr day& operator++() noexcept
std::cout << d << " " << d++ << "\n"; // constexpr day operator++(int) noexcept
std::cout << d;
return 0;
}
01 02
02 02
03
Замечания
Если добавочный результат выходит из диапазона [0, 255], то сохраненное значение не указано.
operator--
Вычитает 1 из значения дня.
1) constexpr std::chrono::day& operator--() noexcept;
2) constexpr std::chrono::day operator--(int) noexcept;
Возвращаемое значение
1) Ссылка на *this
следующий день после ее уменьшения (постфикс декремента).
2) Копия *day
, прежде чем она была отложена (префикс декремента).
Пример: operator--
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
int main()
{
day d{5};
std::cout << d << " " << --d << "\n"; // constexpr day& operator--() noexcept
std::cout << d << " " << d-- << "\n"; // constexpr day operator--(int) noexcept
std::cout << d << "\n";
return 0;
}
05 04
04 04
03
Замечания
Если отложенный результат выходит из диапазона [0, 255], хранимое значение не указано.
operator+=
Добавьте дни к этому day
.
constexpr day& operator+=(const days& d) noexcept;
Параметры
d
Количество дней, которое нужно добавить.
Возвращаемое значение
*this
Если результат находится за пределами диапазона [0, 255], то сохраненное значение не указано.
operator-=
Вычитать дни из этого day
.
constexpr day& operator-=(const days& d) noexcept;
Параметры
d
Количество дней для вычитания.
Возвращаемое значение
*this
. Если результат находится за пределами диапазона [0, 255], то сохраненное значение не указано.
operator unsigned
day
Получите значение.
explicit constexpr operator unsigned() const noexcept;
Возвращаемое значение
Значение day
Пример: operator unsigned()
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
int main()
{
chrono::day d{14d};
unsigned dayValue = static_cast<unsigned>(d);
cout << dayValue << "\n";
return 0;
}
14
См. также
<chrono>
Класс month_day
Класс month_day_last
year_month_day
year_month_day_last
Справочник по файлам заголовков