Namespaces
Variants

std::chrono:: year_month_day

From cppreference.net
定义于头文件 <chrono>
class year_month_day ;
(C++20 起)

year_month_day 类表示特定的年、月和日。它是一个基于字段的时间点,分辨率为 std::chrono::days 。直接支持以 std::chrono::years std::chrono::months 为导向的算术运算。与 std::chrono::sys_days 之间的隐式转换允许高效执行以 std::chrono::days 为导向的算术运算。

year_month_day 是一个 TriviallyCopyable StandardLayoutType

目录

成员函数

构造 year_month_day 对象
(公开成员函数)
通过若干月或年修改时间点
(公开成员函数)
访问此对象中存储的年、月、日
(公开成员函数)
转换为 std::chrono::time_point
(公开成员函数)
检查 year_month_day 是否表示有效日期
(公开成员函数)

非成员函数

比较两个 year_month_day
(函数)
year_month_day 进行年或月的加减运算
(函数)
(C++20)
year_month_day 输出到流中
(函数模板)
根据指定格式从流中解析 year_month_day
(函数模板)

辅助类

year_month_day 的格式化支持
(类模板特化)
std::chrono::year_month_day 的哈希支持
(类模板特化)

示例

#include <chrono>
#include <iostream>
int main()
{
    const std::chrono::time_point now{std::chrono::system_clock::now()};
    const std::chrono::year_month_day ymd{std::chrono::floor<std::chrono::days>(now)};
    std::cout << "当前年份:" << static_cast<int>(ymd.year()) << ","
                 "月份:" << static_cast<unsigned>(ymd.month()) << ","
                 "日期:" << static_cast<unsigned>(ymd.day()) << "\n"
                 "ymd:" << ymd << '\n';
}

可能的输出:

当前年份:2023,月份:9,日期:4
ymd:2023-09-04