year_month

表示月份和年份。 未指定日期。

语法

class year_month; // C++20

成员

名称 说明
构造函数 构造 year_month
year 返回年份。
month 返回月份。
ok 验证 yearmonth 值是否在有效范围内。
operator+= 添加指定的月份数或年份数。
operator-= 减去指定的月份数或年份数。

非成员

“属性” 描述
from_stream 使用指定格式从流分析 year_month
operator+ 加上月份和/或年份。
operator- 减去月份和/或年份。
operator== 确定两个 year_month 值是否相等。
operator<=> 比较两个 year_month 值。 >, >=, <=, <, != 运算符由编译器合成。
operator<< year_month 输出到流。

要求

标头: <chrono> (自C++20以来)

命名空间std::chrono

编译器选项: /std:c++latest

构造函数

构造 year_month

1) year_month() = default;
2) constexpr year_month(const year& y, const month& m) noexcept;

参数

y
year 值。

m
month 值。

备注

1) 默认构造函数不初始化 yearmonth 值。
2) 使用指定值构造 year_month

有关用于指定日期的 C++20 语法的信息,请参阅 operator/

示例:创建 year_month

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month ym{2021y / June};

    std::cout << ym;
    return 0;
}
2021/Jun

month

获取月份。

constexpr month month() const noexcept;

返回值

month 值。

year

获取年份。

constexpr year year() const noexcept;

返回值

year

ok

检查存储在此 year_month 中的年份和月份值是否都在有效范围内。

constexpr bool ok() const noexcept;

返回值

如果 year_month 年份和月份值都在有效范围内,则返回 true。 否则为 false

operator+=

向此 year_month 添加月份或年份。

1) constexpr year_month& operator+=(const months& dm) noexcept;
2) constexpr year_month& operator+=(const years& dy) noexcept;

参数

dm
要添加的月数。

dy
要添加的年数。

返回值

*this,反映加法的结果。

示例: operator +=

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month ym{2021y / June};

    std::cout << ym << '\n';

    ym += months{2};
    ym += years{1};

    std::cout << ym;
    
    return 0;
}
2021/Jun
2022/Aug

operator-=

从此 year_month 减去月份或年份。

1) constexpr year_month& operator-=(const months& dm) noexcept;
2) constexpr year_month& operator-=(const years& dy) noexcept;

参数

dm
要减去的月数。

dy
要减去的年数。

返回值

*this,反映减法的结果。

示例: operator -=

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month ym{2021y / June};

    std::cout << ym << '\n';

    ym -= months{2};
    ym -= years{1};

    std::cout << ym;
    
    return 0;
}
2021/Jun
2020/Apr

另请参阅

<chrono>
year
year_month_day
year_month_day_last
year_month_weekday
year_month_weekday_last
operator/
头文件引用