std::chrono::year_month_day_last
Определено в заголовке <chrono> | ||
|---|---|---|
class year_month_day_last; | (с C++20) |
Класс year_month_day_last представляет собой последний день конкретного года и месяца. Это временная точка на основе полей, с разрешением std::chrono::days, с ограничением, что она может представлять только последний день месяца.
Прямая поддержка арифметики, ориентированной на std::chrono::years и std::chrono::months. Неявное преобразование в std::chrono::sys_days позволяет эффективно выполнять арифметику, ориентированную на std::chrono::days.
year_month_day_last является TriviallyCopyable StandardLayoutType.
Члены-функции
создаёт объект year_month_day_last (публичная функция-член) |
|
| изменяет временную точку на некоторое количество месяцев или лет (публичная функция-член) |
|
| доступ к полям этого объекта (публичная функция-член) |
|
преобразует в std::chrono::time_point (публичная функция-член) |
|
| проверяет, представляет ли этот объект действительную дату (публичная функция-член) |
Вне-классовые функции
|
(C++20) | сравнивает два значения year_month_day_last (функция) |
|
(C++20) | добавляет или вычитает year_month_day_last и некоторое количество лет или месяцев (функция) |
|
(C++20) | выводит year_month_day_last в поток (шаблон функции) |
Вспомогательные классы
|
(C++20) | поддержка форматирования для year_month_day_last (специализация шаблона класса) |
|
(C++26) | поддержка хэширования для std::chrono::year_month_day_last (специализация шаблона класса) |
Пример
#include <chrono>
#include <iostream>
int main()
{
const auto ymd = std::chrono::year_month_day
{
std::chrono::floor<std::chrono::days>(std::chrono::system_clock::now())
};
const std::chrono::year_month_day_last ymdl
{
ymd.year(), ymd.month() / std::chrono::last
};
std::cout << "The last day of present month (" << ymdl << ") is: "
<< std::chrono::year_month_day{ymdl}.day() << '\n';
// The 'last' object can be placed wherever it is legal to place a 'day':
using namespace std::chrono;
constexpr std::chrono::year_month_day_last
ymdl1 = 2023y / February / last,
ymdl2 = last / February / 2023y,
ymdl3 = February / last / 2023y;
static_assert(ymdl1 == ymdl2 && ymdl2 == ymdl3);
}Возможный вывод:
The last day of present month (2023/Aug/last) is: 31
См. также
|
(C++20) | представляет собой конкретный year, month и day (класс) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/chrono/year_month_day_last