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