std::chrono::weekday_indexed

From cppreference.com
< cpp‎ | chrono
 
 
Utilities library
General utilities
Date and time
Function objects
Formatting library (C++20)
(C++11)
Relational operators (deprecated in C++20)
Integer comparison functions
(C++20)(C++20)(C++20)   
(C++20)
Swap and type operations
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Common vocabulary types
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Elementary string conversions
(C++17)
(C++17)
 
Date and time utilities
Time point
(C++11)
(C++20)
Duration
(C++11)
Clocks
(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)

Calendars
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)      
weekday_indexed
(C++20)
(C++20)
(C++20)
(C++20)(C++20)
Time zones
(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 Gregorian calendar, with a small index n in the range [1, 5]. It represents the first, second, third, fourth, or fifth weekday of some month.

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

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

Helper classes

specialization of std::formatter that formats a weekday_indexed according to the provided format
(class template specialization)

Example

#include <iostream>
#include <chrono>
 
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 and
                   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