std::chrono::weekday:: weekday
From cppreference.net
C++
Date and time library
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::chrono::weekday
| Member functions | ||||
|
weekday::weekday
|
||||
| Nonmember functions | ||||
| Helper classes | ||||
|
(C++26)
|
|
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}; // オーバーロード (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