Espacios de nombres
Variantes
Acciones

std::chrono::weekday::weekday

De cppreference.com
< cpp‎ | chrono‎ | weekday
 
 
Biblioteca de servicios
 
 
 
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

#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.