std::chrono::year_month_weekday:: operator sys_days, std::chrono::year_month_weekday:: operator local_days
From cppreference.net
<
cpp
|
chrono
|
year month weekday
C++
Date and time library
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::chrono::year_month_weekday
| Member functions | ||||
|
year_month_weekday::operator sys_days
year_month_weekday::operator local_days
|
||||
| Nonmember functions | ||||
| Helper classes | ||||
|
constexpr
operator
std::
chrono
::
sys_days
(
)
const
noexcept
;
|
(1) | (C++20以降) |
|
constexpr
explicit
operator
std::
chrono
::
local_days
(
)
const
noexcept
;
|
(2) | (C++20以降) |
*
this
を、この
year_month_weekday
と同じ日付を表す
std::chrono::time_point
に変換します。
1)
もし
year
(
)
.
ok
(
)
&&
month
(
)
.
ok
(
)
&&
weekday
(
)
.
ok
(
)
の場合:
-
-
もし
index
(
)
==
0
の場合、その年と月の最初の
weekday()の7日前の日付を表すsys_daysを返す。 -
それ以外の場合、その年と月の最初の
weekday()
から
(
index
(
)
-
1
)
*
7
日後の日付を表す
sys_daysを返す。
-
もし
index
(
)
==
0
の場合、その年と月の最初の
それ以外の場合、返される値は未規定です。
2)
(1)
と同様ですが、
local_days
を返します(
sys_days
ではなく)。以下と等価です:
local_days
(
sys_days
(
*
this
)
.
time_since_epoch
(
)
)
。
例
このコードを実行
#include <chrono> #include <iostream> using namespace std::chrono; int main() { constexpr auto ymwd{Tuesday[2]/11/2021}; std::cout << ymwd << '\n'; // convert from field-based to serial-based to add hours constexpr auto sd = sys_days{ymwd} + 24h; std::cout << sd << '\n'; constexpr auto ymd = floor<days>(sd); static_assert(ymd == November/10/2021); }
出力:
2021/Nov/Tue[2] 2021-11-10 00:00:00