Класс year
Представляет год в григорианском календаре.
Синтаксис
class year; // C++20
Замечания
Может year
содержать годовое значение от -32767 до 32767.
Участники
Имя | Описание |
---|---|
Конструкторы | Создание year |
is_leap |
Определите, является ли год високосным годом. |
max |
Возвращает наибольшее возможное значение года. |
min |
Возвращает наименьшее возможное значение года. |
ok |
Убедитесь, что значение года находится в допустимом диапазоне [-32767, 32767]. |
operator+ |
Унарный плюс. |
operator++ |
Увеличение года. |
operator+= |
Добавьте указанное число лет в это year . |
operator- |
Унарный минус. |
operator-- |
Уменьшение года. |
operator-= |
Вычитает указанное количество лет из этого year . |
operator int |
year Получите значение. |
Не являющиеся членами
Имя | Описание |
---|---|
from_stream |
year Анализ из потока с помощью указанного формата |
operator+ |
Добавьте годы. |
operator- |
Вычитать годы. |
operator== |
Определите, равны ли два года. |
operator<=> |
Сравните это year с другим year . Операторы >, >=, <=, <, != синтезируются компилятором. |
operator<< |
Выводит объект в заданный year поток. |
operator""y |
year Создайте литерал. |
Требования
Заголовок: <chrono>
(с C++20)
Пространство имен: std::chrono
Параметр компилятора: /std:c++latest
Конструкторы
Создайте year
1) year() = default;
2) explicit constexpr year(unsigned y) noexcept;
Параметры
y
Создание со значением year
y
.
Замечания
1) Конструктор по умолчанию не инициализирует year
значение.
2) Создание year
с указанным значением.
Пример. Создание year
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{2020};
year y2 = 2021y;
std::cout << y << ", " << y2;
return 0;
}
2020, 2021
is_leap
Проверяет, находится ли значение, хранящееся в year
, в допустимом диапазоне.
constexpr bool is_leap() const noexcept;
Возвращаемое значение
true
Если значение года является високосным годом. В противном случае — false
.
Високосный год является годом, делимым на 4, но не 100-или делится на 400.
max
Возвращает самый большой возможный год.
static constexpr year max() noexcept;
Возвращаемое значение
year{32767}
min
Возвращает наименьший возможный год.
static constexpr year min() noexcept;
Возвращаемое значение
year{-32767}
ok
Проверяет, находится ли значение, хранящееся в year
, в допустимом диапазоне.
constexpr bool ok() const noexcept;
Возвращаемое значение
true
Значение года в диапазоне [-32676, 32767]. В противном случае — false
.
operator+
Применить унарный плюс.
constexpr year operator+() const noexcept;
Возвращаемое значение
Возвращает *this
.
Пример: унарный operator+
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{-1};
std::cout << +y;
return 0;
}
-0001
operator++
Добавьте 1 к значению года.
1) constexpr year& operator++() noexcept;
2) constexpr year operator++(int) noexcept;
Возвращаемое значение
1) Возвращает ссылку на этот год после увеличения (приращение постфикса).
2) Возвращает копию year
, прежде чем она была добавлена (добавочный префикс).
Пример: operator++
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{2021};
std::cout << y << " " << ++y << "\n"; // constexpr year& operator++() noexcept
std::cout << y << " " << y++ << "\n"; // constexpr year operator++(int) noexcept
std::cout << y << "\n";
return 0;
}
2021 2022
2022 2022
2023
Замечания
Если добавочный результат превышает 32767, он переполнен до -32768
operator-
Унарный минус. Нейтэйт year
.
constexpr year operator-() const noexcept; // C++20
Возвращаемое значение
Возвращает отрицаемую копию year
.
Пример: унарный operator-
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{1977};
std::cout << -y << '\n';
return 0;
}
-1977
operator--
Вычитает 1 из значения года.
1) constexpr year& operator--() noexcept;
2) constexpr year operator--(int) noexcept;
Возвращаемое значение
1) Ссылка на это year
после ее уменьшения (дефикс декремента).
2) Копия до его уменьшения year
(префикс декремента).
Пример: operator--
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{2021};
std::cout << y << " " << --y << "\n"; // constexpr year& operator++() noexcept
std::cout << y << " " << y-- << "\n"; // constexpr year operator++(int) noexcept
std::cout << y << "\n";
return 0;
}
2021 2020
2020 2020
2019
Замечания
Если отложенный результат меньше -32768, он имеет значение 32767.
operator+=
Добавьте дни к этому year
.
constexpr year& operator+=(const years& y) noexcept;
Параметры
y
Количество добавляемых лет.
Возвращаемое значение
*this
Если добавочный результат превышает 32767, он переполняется до -32768.
operator-=
Вычитать дни из этого year
.
constexpr year& operator-=(const years& y) noexcept;
Параметры
y
Количество лет для вычитания.
Возвращаемое значение
*this
. Если отложенный результат меньше -32768, он имеет значение 32767.
operator int
year
Получите значение.
explicit constexpr operator int() const noexcept;
Возвращаемое значение
Значение year
Пример: operator int()
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{2020};
int yearValue = static_cast<int>(y);
std::cout << yearValue;
return 0;
}
2020
См. также
<chrono>
year_month
year_month_day
year_month_day_last
year_month_weekday
year_month_weekday_last
Справочник по файлам заголовков