std::chrono::weekday::weekday
Материал из cppreference.com
<tbody>
</tbody>
weekday() = default; |
(1) | (начиная с C++20) |
constexpr explicit weekday( unsigned wd ) noexcept; |
(2) | (начиная с C++20) |
constexpr weekday( const std::chrono::sys_days& dp ) noexcept; |
(3) | (начиная с C++20) |
constexpr explicit weekday( const std::chrono::local_days& dp ) noexcept; |
(4) | (начиная с C++20) |
Создаёт объект weekday.
1) Конструктор по умолчанию оставляет значение дня недели неинициализированным.
2) Создаёт объект
weekday, содержащий значение дня недели wd. Если wd == 7, сохраняется значение 0. Если wd > 255, сохранённое значение не определено.3) Создаёт объект
weekday, представляющий день недели, которому соответствует dp. Этот конструктор определяет неявное преобразование из std::chrono::sys_days в weekday.4) Создаёт объект
weekday, представляющий день недели, которому соответствует dp, как если бы weekday(std::chrono::sys_days(dp.time_since_epoch())).Пример
Запустить этот код
#include <chrono>
#include <iostream>
#include <iomanip>
int main()
{
constexpr std::chrono::weekday friday{5}; // использует перегрузку (2)
static_assert(friday == std::chrono::Friday);
for (int y {2020}; y <= 2023; ++y) {
const std::chrono::year cur_year{y};
for (int cur_month{1}; cur_month != 13; ++cur_month) {
const std::chrono::year_month_day ymd{ cur_year / cur_month / 13 };
const std::chrono::weekday cur_weekday{ std::chrono::sys_days{ ymd } }; // (3)
if (cur_weekday == friday)
std::cout << ymd << " это " << friday << '\n';
}
}
}
Вывод:
2020-03-13 это пятница
2020-11-13 это пятница
2021-08-13 это пятница
2022-05-13 это пятница
2023-01-13 это пятница
2023-10-13 это пятница