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())).[editar] 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.