year_month
类
表示月份和年份。 未指定日期。
语法
class year_month; // C++20
成员
名称 | 说明 |
---|---|
构造函数 | 构造 year_month |
year |
返回年份。 |
month |
返回月份。 |
ok |
验证 year 和 month 值是否在有效范围内。 |
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) 默认构造函数不初始化 year
或 month
值。
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/
头文件引用