std::chrono::year_month_day::year_month_day
来自cppreference.com
| |
(1) | (C++20 起) |
| |
(2) | (C++20 起) |
| |
(3) | (C++20 起) |
| |
(4) | (C++20 起) |
| |
(5) | (C++20 起) |
构造 year_month_day 对象。
1) 默认构造函数保留日期未初始化。
2) 构造存储年
y、月 m 和日 d 的 year_month_day 对象。3) 构造存储年
ymdl.year()、月 ymdl.month() 和日 ymdl.day() 的 year_month_day 对象。4) 构造与
dp 表示相同日期的 year_month_day 对象。5) 如同用
year_month_day(sys_days(dp.time_since_epoch())) 构造与 dp 表示相同日期的 year_month_day 对象。构造函数 (3,4) 分别定义来自 std::chrono::year_month_day_last 和 std::chrono::sys_days 的隐式转换。
对于任何表示合法日期的 year_month_day 对象 ymd(ymd.ok() == true),转换 ymd 为 std::chrono::sys_days 再转换回来将生成相同值。
注解
亦能由将部分日期类型 std::chrono::year_month 及 std::chrono::month_day 与缺失组分(分别为 day 和 year)结合,用 operator/ 创建 year_month_day。
示例
运行此代码
#include <chrono>
#include <iostream>
int main()
{
using namespace std::chrono;
constexpr auto ymd2 = std::chrono::year_month_day(
2020y, std::chrono::January, 31d // overload (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) |
创建格里高利历日期的约定语法 (函数) |