std::chrono::weekday::weekday
De cppreference.com
weekday() = default;
|
(1) | (desde C++20) |
explicit constexpr weekday( unsigned wd ) noexcept;
|
(2) | (desde C++20) |
constexpr weekday( const std::chrono::sys_days& dp ) noexcept;
|
(3) | (desde C++20) |
explicit constexpr weekday( const std::chrono::local_days& dp ) noexcept;
|
(4) | (desde C++20) |
Construye un objeto weekday.
1) El constructor por defecto deja el valor del día de la semana sin inicializar.
2) Construye un objeto
weekday que retiene el valor del día de la semana wd. Si wd == 7, el valor retenido es 0. Si wd > 255, el valor retenido no está especificado.3) Construye un objeto
weekday que representa el día de la semana correspondiente a dp. Este constructor define una conversión implícita de std::chrono::sys_days a weekday.4) Construye un objeto
weekday que representa el día de la semana correspondiente a dp, como si fuera mediante weekday(std::chrono::sys_days(dp.time_since_epoch())).Ejemplo
Ejecuta este código
#include <chrono>
#include <iostream>
#include <iomanip>
int main()
{
constexpr std::chrono::weekday viernes{5}; // usa la sobrecarga (2)
static_assert(viernes == 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 == viernes) {
// std::cout << ymd << " es " << viernes << '\n';
std::cout << int(ymd.year()) << '-' << std::setw(2) << std::setfill('0')
<< unsigned(ymd.month()) << '-'
<< unsigned(ymd.day()) << " es vier.\n";
}
}
}
}
Salida:
2020-03-13 es vier.
2020-11-13 es vier.
2021-08-13 es vier.
2022-05-13 es vier.
2023-01-13 es vier.
2023-10-13 es vier.