Класс year_month_weekday
Представляет определенный год, месяц и nth будний день месяца.
Синтаксис
class year_month_weekday; // C++20
Замечания
year_month_weekday
поддерживает арифметические арифметические и месяцы, но не арифметические арифметики, ориентированные на дни. Для арифметики, ориентированной на дни, используйте sys_days
преобразование для преобразования в арифметику sys_days
, поддерживающую арифметику с днями.
year_month_weekday
— это тип класса с простым копированием и стандартным макетом.
Участники
Имя | Описание |
---|---|
Constructor |
Создайте объект year_month_weekday с указанным месяцем и будним днем. |
index |
Получение индекса дня недели. |
month |
Получите значение месяца. |
ok |
Проверьте, является ли допустимым year_month_weekday . |
operator+= |
Добавьте указанное количество месяцев или лет. |
operator-= |
Вычитает указанное количество месяцев или лет. |
operator local_days |
Получите количество дней от system_clock эпохи до этогоyear_month_weekday .local_days |
operator sys_days |
Получите количество дней от system_clock эпохи до этогоyear_month_weekday .sys_days |
weekday |
Получите день недели. |
weekday_indexed |
Получите [weekday_indexed ], хранящийся в этом year_month_weekday файле. |
year |
Получите год. |
Не являющиеся членами
Имя | Описание |
---|---|
operator+ |
Добавьте месяцы или годы. |
operator- |
Вычитайте месяцы или годы. |
operator== |
Определите, равны ли два year_month_weekday значения. |
operator<< |
Выводит объект в заданный year_month_weekday поток. |
Требования
Заголовок: <chrono>
(с C++20)
Пространство имен: std::chrono
Параметр компилятора: /std:c++latest
Конструктор
Создает документ year_month_weekday
.
// 1)
year_month_weekday() = default
// 2)
constexpr year_month_weekday(const year& y, const month& m, const weekday_indexed& wdi) noexcept;
// 3)
constexpr explicit year_month_weekday(const local_days& dp) noexcept;
// 4)
constexpr year_month_weekday(const sys_days& dp) noexcept;
Параметры
m
Значение типа month
.
dp
A sys_days
или local_days
wdi
Значение типа weekday
.
y
Значение типа year
.
Примечания: конструктор
1) Конструктор по умолчанию не инициализирует ни одно из полей.
2) Создает объект year_month_weekday
, соответствующий указанному year
, month
и weekday_indexed
.
3) Создает объект year_month_weekday
, соответствующий дате, sys_days{dp.time_since_epoch()}
представленной .
4) Создает объект year_month_weekday
, соответствующий дате, dp
представленной . Для любого year_month_weekday
(ymdl), для которого ok()
используетсяtrue
, сравнение с year_month_weekday{sys_days{ymdl}}
operator==
будетtrue
.
Сведения о синтаксисе C++20, используемом для указания дат, см. в разделе operator/
Пример. Создание year_month_weekday
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_weekday ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
index
Получите индекс недели дня недели в этом year_month_weekday
.
constexpr unsigned index() const noexcept;
Возвращаемое значение
Индекс дня недели. Например, если будний день был первым в среду недели, индекс будет 1.
month
Получите значение месяца.
constexpr month month() const noexcept;
Возвращаемое значение
Значение типа month
.
ok
Проверьте допустимость значения, хранящегося в этом year_month_weekday
параметре. Значение year
, month
и weekday_index
хранящиеся в этом year_month_weekday
случае должны быть ok
для возвращаемой true
функции. В противном случае возвращается false
.
constexpr bool ok() const noexcept;
Возвращаемое значение
true
year_month_weekday
Значение допустимо. В противном случае — false
.
Допустимо year_month_weekday
, если month
weekday_indexed
допустимый и допустимый значение.
operator+=
Добавьте к этому year_month_weekday
месяцы или годы.
1) constexpr year_month_weekday& operator+=(const months& m) noexcept;
2) constexpr year_month_weekday& operator+=(const years& y) noexcept;
Параметры
m
Количество добавленных месяцев.
y
Количество добавляемых лет.
Возвращаемое значение
*this
который отражает результат добавления.
Пример: operator+=
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_weekday ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
ymw += months{1};
ymw += years{1};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
1998/Feb/Wed[1]
operator-=
Вычитайте месяцы или годы из этого year_month_weekday
.
1) constexpr year_month_weekday& operator-=(const months& m) noexcept;
2) constexpr year_month_weekday& operator-=(const years& y) noexcept;
Параметры
m
Количество месяцев для вычитания.
y
Количество лет для вычитания.
Возвращаемое значение
*this
который отражает результат вычитания.
Пример: operator-=
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_weekday ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
ymw -= months{1};
ymw -= years{1};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
1995/Dec/Wed[1]
operator local_days
Получение количества дней от system_clock
эпохи (1/1/1970) к этому year_month_weekday
как local_days
constexpr explicit operator local_days() const noexcept;
Возвращаемое значение
Если ok()
, возвращает количество дней как local_days{sys_days{*this}.time_since_epoch()}
. В противном случае возвращаемое значение не указано.
operator sys_days
Получите количество дней от system_clock
эпохи (1/1/1970) к этому year_month_day
как sys_days
.
constexpr operator sys_days() const noexcept;
Возвращаемое значение
Если ok()
возвращает дату sys_days
, представляющую дату, которая находится (index() - 1) * 7
через несколько дней после первого weekday()
year()/month()
из . Если index()
это 0
так, возвращаемый sys_days
представляет дату 7 дней до первого weekday()
из year()/month()
них.
weekday
weekday
Получите хранящийся в хранимом weekday_indexed
в этом year_month_weekday
файле.
constexpr weekday weekday() const noexcept;
Возвращаемое значение
Значение типа weekday
.
weekday_indexed
Получите хранимый weekday_indexed
в этом year_month_weekday
объекте.
constexpr weekday_indexed weekday_indexed() const noexcept;
Возвращаемое значение
Значение типа weekday_indexed
.
year
Получите значение года.
constexpr year year() const noexcept;
Возвращаемое значение
Значение типа year
.
См. также
<chrono>
year
year_month
year_month_day
year_month_day_last
year_month_weekday_last
operator/
Справочник по файлам заголовков