std::chrono::year_month_day:: year_month_day
|
year_month_day
(
)
=
default
;
|
(1) | (C++20 起) |
|
constexpr
year_month_day
(
const
std::
chrono
::
year
&
y,
const
std::
chrono
::
month
&
m,
|
(2) | (C++20 起) |
|
constexpr
year_month_day
(
const
std::
chrono
::
year_month_day_last
&
ymdl
)
noexcept
;
|
(3) | (C++20 起) |
|
constexpr
year_month_day
(
const
std::
chrono
::
sys_days
&
dp
)
noexcept
;
|
(4) | (C++20 起) |
|
constexpr
explicit
year_month_day
(
const
std::
chrono
::
local_days
&
dp
)
noexcept
;
|
(5) | (C++20 起) |
构造一个
year_month_day
对象。
year_month_day
对象,该对象存储年份
y
、月份
m
和日期
d
。
year_month_day
对象,该对象存储年份
ymdl.
year
(
)
、月份
ymdl.
month
(
)
和日期
ymdl.
day
(
)
。
year_month_day
对象,该对象表示与
dp
所表示日期相同的日期。
year_month_day
对象,该对象表示与
dp
所表示日期相同的日期,如同通过
year_month_day
(
sys_days
(
dp.
time_since_epoch
(
)
)
)
实现。
构造函数 (3,4) 分别定义了从 std::chrono::year_month_day_last 和 std::chrono::sys_days 的隐式转换。
对于任何表示有效日期的
year_month_day
对象
ymd
(
ymd.
ok
(
)
==
true
),将
ymd
转换为
sys_days
再转换回来会得到相同的值。
注释
一个
year_month_day
也可以通过组合部分日期类型
std::chrono::year_month
和
std::chrono::month_day
与缺失的组成部分(分别为日和年),使用
operator
/
来创建。
示例
#include <chrono> #include <iostream> int main() { using namespace std::chrono; constexpr auto ymd2 = std::chrono::year_month_day( 2020y, std::chrono::January, 31d // 重载 (2) ); std::cout << "ymd2: " << ymd2 << '\n'; constexpr auto ymd3 = std::chrono::year_month_day( std::chrono::April / std::chrono::Monday[last] / 2023y // 重载 (3) ); std::cout << "ymd3: " << ymd3 << '\n'; const auto now = std::chrono::system_clock::now(); const auto ymd4 = std::chrono::year_month_day( std::chrono::floor<std::chrono::days>(now) // 重载 (4) ); std::cout << "ymd4: " << ymd4 << '\n'; }
可能的输出:
ymd2: 2020-01-31 ymd3: 2023-04-24 ymd4: 2023-08-30
参见
|
(C++20)
|
格里高利历日期创建的常规语法
(函数) |