Scroll to navigation

std::chrono::weekday::weekday(3) C++ Standard Libary std::chrono::weekday::weekday(3)

NAME

std::chrono::weekday::weekday - std::chrono::weekday::weekday

Synopsis


weekday() = default; (1) (since C++20)
constexpr explicit weekday( unsigned wd ) noexcept; (2) (since C++20)
constexpr weekday( const std::chrono::sys_days& sd ) noexcept; (3) (since C++20)
constexpr explicit weekday( const std::chrono::local_days& ld ) (4) (since C++20)
noexcept;


Constructs a weekday object.


1) Default constructor leaves the weekday value uninitialized.
2) Constructs a weekday object holding the weekday value wd. If wd == 7, the value
held is 0. If wd > 255, the value held is unspecified.
3) Constructs a weekday object representing the day of the week sd corresponds to.
This constructor defines an implicit conversion from std::chrono::sys_days to
weekday.
4) Constructs a weekday object representing the day of the week ld corresponds to,
as if by weekday(std::chrono::sys_days(ld.time_since_epoch())).

Parameters


wd - a weekday value
sd - a system days object
ld - a local days object

Example

// Run this code


#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 <= 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 == friday)
std::cout << ymd << " is " << friday << '\n';
}
}
}

Output:


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.06.10 http://cppreference.com