Namespaces
Variants

std::chrono:: year_month_day_last

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

year_month_day_last 表示特定年份和月份的最后一天。它是一个基于字段的时间点,分辨率为 std::chrono::days ,受限于仅能表示某个月份的最后一天。

直接支持面向 std::chrono::years std::chrono::months 的算术运算。通过隐式转换为 std::chrono::sys_days ,可以高效执行面向 std::chrono::days 的算术运算。

year_month_day_last 是一个 可平凡复制 标准布局类型

目录

成员函数

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

非成员函数

比较两个 year_month_day_last
(函数)
year_month_day_last 进行年或月的加减运算
(函数)
(C++20)
year_month_day_last 输出到流中
(函数模板)

辅助类

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

示例

#include <chrono>
#include <iostream>
int main()
{
    const auto ymd = std::chrono::year_month_day
    {
        std::chrono::floor<std::chrono::days>(std::chrono::system_clock::now())
    };
    const std::chrono::year_month_day_last ymdl
    {
        ymd.year(), ymd.month() / std::chrono::last
    };
    std::cout << "当前月份的最后一天 (" << ymdl << ") 是: "
              << std::chrono::year_month_day{ymdl}.day() << '\n';
    // 'last' 对象可以放置在允许放置 'day' 的任何位置:
    using namespace std::chrono;
    constexpr std::chrono::year_month_day_last
        ymdl1 = 2023y / February / last,
        ymdl2 = last / February / 2023y,
        ymdl3 = February / last / 2023y;
    static_assert(ymdl1 == ymdl2 && ymdl2 == ymdl3);
}

可能的输出:

当前月份的最后一天 (2023/Aug/last) 是: 31

参见

表示特定的 year month day
(类)