std::chrono::weekday_indexed

From cppreference.com
< cpp‎ | chrono
Date and time library
Time point
(C++11)
(C++20)
Duration
(C++11)
Clocks
(C++11)
(C++11)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
Time of day
(C++20)(C++20)
(C++20)(C++20)
(C++20)

Calendar
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
weekday_indexed
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)
Time zone
(C++20)
(C++20)
(C++20) (C++20) (C++20) (C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
chrono I/O
(C++20)
C-style date and time
Defined in header <chrono>
class weekday_indexed;
(since C++20)

The class weekday_indexed combines a weekday, representing a day of the week in the proleptic Gregorian calendar, with a small index n in the range [ 1 5 ]

weekday_indexed is a TriviallyCopyable StandardLayoutType

Member functions

constructs a weekday_indexed
(public member function)
access the stored weekday
(public member function)
access the stored index
(public member function)
checks if the weekday and index are both valid
(public member function)

Nonmember functions

(C++20)
compares two weekday_indexed values
(function)
(C++20)
outputs a weekday_indexed into a stream
(function template)

Helper classes

formatting support for weekday_indexed
(class template specialization)
hash support for std::chrono::weekday_indexed
(class template specialization)

Example

#include <chrono>
#include <iostream>
 
int main()
{
    using namespace std::chrono;
 
    constexpr weekday_indexed wi = Friday[2];
 
    // Indexed weekday can be used at any place where chrono::day can be used:
    constexpr year_month_weekday ymwd = 2021y / August / wi;
    static_assert(ymwd == August / wi / 2021y &&
                  ymwd == wi / August / 2021y);
    std::cout << ymwd << '\n';
 
    constexpr year_month_day ymd{ymwd}; // a conversion
    static_assert(ymd == 2021y / 8 / 13);
    std::cout << ymd << '\n';
}

Possible output:

2021/Aug/Fri[2]
2021-08-13