Класс year_month_day_last
Представляет последний день определенного года и месяца.
year_month_day_last
поддерживает арифметический месяц и годы арифметики, но не дни арифметики. Для выполнения арифметических операций, ориентированных на дни, преобразуйте его year_month_day_last
sys_days
в .
Синтаксис
class year_month_day_last; // C++20
Участники
Имя | Описание |
---|---|
Конструкторы | Создание year_month_day_last |
day |
Получите последний день месяца или года. |
month |
Получите месяц. |
month_day_last |
Получите значение month_day_last, хранящееся в этом year_month_day_last файле. |
ok |
Убедитесь, что year значения и month значения находятся в допустимом диапазоне. |
operator+= |
Добавьте к этому year_month_day_last месяцы или годы. |
operator-= |
Вычитайте месяцы или годы из этого year_month_day_last . |
operator local_days |
Получите количество дней от sys_days эпохи до этогоyear_month_day_last .local_days |
operator sys_days |
Получите количество дней от sys_days эпохи до этогоyear_month_day_last .sys_days |
year |
Получите год. |
Не являющиеся членами
Имя | Описание |
---|---|
operator+ |
Добавьте месяцы или годы. |
operator- |
Вычитайте месяцы или годы. |
operator== |
Определите, равны ли два year_month_day_last значения. |
operator<=> |
Сравните два year_month_day_last значения. Операторы >, >=, <=, <, != синтезируются компилятором. |
operator<< |
Выводится year_month_day_last в поток. |
Требования
Заголовок: <chrono>
(с C++20)
Пространство имен: std::chrono
Параметр компилятора: /std:c++latest
Конструкторы
year_month_day_last
Создайте объект в течение указанного месяца и года.
constexpr year_month_day_last(const year& y, const month_day_last& mdl) noexcept;
Параметры
mdl
Значение месяца из month_day_last
объекта хранится в созданном year_month_day_last
объекте.
y
Значение year
хранится в построенном year_month_day_last
объекте.
Замечания
Сведения о синтаксисе C++20, используемом для указания дат, см. в разделе operator/
Пример. Создание year_month_day_last
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_day_last ymdl{ April / last / 1975 };
std::cout << ymdl;
return 0;
}
1975/Apr/last
day
Если ok()
имеет значение true
, возвращает день, представляющий последний день года, месяц, представленный этим year_month_day_last
.
constexpr day day() const noexcept;
Возвращаемое значение
Если ok()
имеет значение true
, возвращает day
последний день года и месяца, *this
представленный . В противном случае возвращаемое значение не указано.
local_days
Получите месяц, день и год в этом year_month_day_last
количестве дней.
constexpr explicit operator local_days() const noexcept;
Возвращаемое значение
local_days{sys_days{*this}.time_since_epoch()}
Пример
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_day_last ymdl{ June / last / 2021 };
auto ld = local_days(ymdl);
std::cout << ld.time_since_epoch();
return 0;
}
18808d
month
Получите сохраненное значение месяца.
constexpr month month() const noexcept;
Возвращаемое значение
Значение типа month
.
month_day_last
month_day_last
Возвращает значение, хранящееся в этом year_month_day_last
файле.
constexpr month_day_last month_day_last() const noexcept;
Возвращаемое значение
Значение month_day_last
, хранящееся в этом year_month_day_last
.
operator sys_days
Получите месяц, день и год в этом year_month_day_last
количестве дней от эпохи для системных часов.
constexpr explicit operator sys_days() const noexcept;
Возвращаемое значение
Возвращает sys_days{this->year()/this->month()/this->day()}
.
Пример
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_day_last ymdl{ June / last / 2021 };
auto sd = sys_days(ymdl);
std::cout << sd.time_since_epoch();
return 0;
}
18808d
year
Получите год.
constexpr year year() const noexcept;
Возвращаемое значение
year
.
ok
Проверьте, находятся ли year
и month_day_last
значения, хранящиеся в этом year_month_day_last
диапазоне.
constexpr bool ok() const noexcept;
Возвращаемое значение
true
year
Значение и month_day_last
значение, хранящиеся в этом year_month_day_last
диапазоне, находятся в допустимом диапазоне. В противном случае — false
.
operator+=
Добавьте к этому year_month_day_last
месяцы или годы.
1) constexpr year_month_day_last& operator+=(const months& m) noexcept;
2) constexpr year_month_day_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_day_last ymdl{ April / last / 1975 };
std::cout << ymdl << '\n';
ymdl += months{1};
ymdl += years{1};
std::cout << ymdl;
return 0;
}
1975/Apr/last
1976/May/last
operator-=
Вычитайте месяцы или годы из этого year_month_day_last
.
1) constexpr year_month_day_last& operator-=(const months& m) noexcept;
2) constexpr year_month_day_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_day_last ymdl{ April / last / 1975 };
std::cout << ymdl << '\n';
ymdl -= months{1};
ymdl -= years{1};
std::cout << ymdl;
return 0;
}
1975/Apr/last
1974/Mar/last
См. также
<chrono>
year
year_month
year_month_day
year_month_weekday
year_month_weekday_last
operator/
Справочник по файлам заголовков