Namespaces
Variants

std::chrono::weekday:: weekday

From cppreference.net
weekday ( ) = default ;
(1) (C++20부터)
constexpr explicit weekday ( unsigned wd ) noexcept ;
(2) (C++20부터)
constexpr weekday ( const std:: chrono :: sys_days & sd ) noexcept ;
(3) (C++20부터)
constexpr explicit weekday ( const std:: chrono :: local_days & ld ) noexcept ;
(4) (C++20부터)

weekday 객체를 생성합니다.

1) 기본 생성자는 요일 값을 초기화하지 않은 상태로 둡니다.
2) weekday 객체를 생성하며, 요일 값 wd 를 보유합니다. 만약 wd == 7 인 경우, 보유되는 값은 0 입니다. 만약 wd > 255 인 경우, 보유되는 값은 지정되지 않습니다.
3) weekday 객체를 생성하며, 이는 sd 가 해당하는 요일을 나타냅니다. 이 생성자는 std::chrono::sys_days 에서 weekday 로의 암시적 변환을 정의합니다.
4) weekday 객체를 생성하며, 이 객체는 ld 가 나타내는 요일을 표현합니다. 마치 weekday ( std:: chrono :: sys_days ( ld. time_since_epoch ( ) ) ) 와 같이 수행됩니다.

매개변수

wd - 요일 값
sd - 시스템 날짜 객체
ld - 로컬 날짜 객체

예제

#include <chrono>
#include <iomanip>
#include <iostream>
int main()
{
    constexpr std::chrono::weekday friday{5}; // uses overload (2)
    static_assert(friday == std::chrono::Friday);
    for (int y{2020}; y <= 2024; ++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 << " is " << friday << '\n';
        }
    }
}

출력:

2020-03-13 is Fri
2020-11-13 is Fri
2021-08-13 is Fri
2022-05-13 is Fri
2023-01-13 is Fri
2023-10-13 is Fri
2024-09-13 is Fri
2024-12-13 is Fri