year_month_weekday_last
类
特定年份、月份和该月的最后一个工作日。
语法
class year_month_weekday_last; // C++20
备注
year_month_weekday_last
支持面向年和月的算术,但不支持面向天的算术。 对于面向天的算术,请使用 sys_days
转换来转换为支持面向天的算数的 sys_days
。
year_month_weekday_last
是一种可完全复制的标准布局类类型。
成员
名称 | 描述 |
---|---|
Constructor |
使用指定的月份和工作日构造 year_month_weekday_last 。 |
month |
获取月份值。 |
ok |
检查 year_month_weekday_last 是否有效。 |
operator+= |
添加指定的月份数或年份数。 |
operator-= |
减去指定的月份数或年份数。 |
operator local_days |
获取从 system_clock 纪元到此 year_month_weekday_last 的天数作为 local_days 。 |
operator sys_days |
获取从 system_clock 纪元到此 year_month_weekday_last 的天数作为 sys_days 。 |
weekday |
获取工作日。 |
weekday_last |
获取存储在此 year_month_weekday_last 中的 weekday_last 。 |
year |
获取年份。 |
非成员
“属性” | 描述 |
---|---|
operator+ |
添加月份或年份。 |
operator- |
减去月份或年份。 |
operator== |
确定两个 year_month_weekday_last 值是否相等。 |
operator<< |
将 year_month_weekday_last 输出到给定流。 |
要求
标头: <chrono>
(自C++20以来)
命名空间:std::chrono
编译器选项: /std:c++latest
构造函数
构造一个 year_month_weekday_last
。
constexpr year_month_weekday_last(const year& y, const month& m, const weekday_last& wdl) noexcept
参数
m
month
值。
wdl
weekday_last
值。
y
year
值。
有关用于指定日期的 C++ 20 语法的信息,请参阅 operator/
示例:创建 year_month_weekday_last
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_weekday_last ymwl{ 1997y / January / Wednesday[last] };
std::cout << ymwl << '\n';
return 0;
}
1997/Jan/Wed[last]
month
获取月份值。
constexpr month month() const noexcept;
返回值
month
值。
ok
检查存储在此 year_month_weekday_last
中的值是否有效。 存储在此 year_month_weekday_last
中的 year
、month
和 weekday_last
必须全部为 ok
,此函数才能返回 true
。 否则返回 false
。
constexpr bool ok() const noexcept;
返回值
如果 year_month_weekday_last
值有效,则为 true
。 否则为 false
。
如果 month
、weekday_indexed
和 year
都有效,则 year_month_weekday_last
有效。
operator+=
向此 year_month_weekday_last
添加月份或年份。
1) constexpr year_month_weekday_last& operator+=(const months& m) noexcept;
2) constexpr year_month_weekday_last& operator+=(const years& y) noexcept;
参数
m
要添加的月数。
y
要添加的年数。
返回值
*this
,反映添加的结果。
示例: operator+=
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_weekday_last ymwl{ year(1997) / January / Wednesday[last] };
std::cout << ymwl << '\n';
ymwl += months{ 1 };
ymwl += years{ 1 };
std::cout << ymwl << '\n';
return 0;
}
1997/Jan/Wed[last]
1998/Feb/Wed[last]
operator-=
从此 year_month_weekday_last
减去月份或年份。
1) constexpr year_month_weekday_last& operator-=(const months& m) noexcept;
2) constexpr year_month_weekday_last& operator-=(const years& y) noexcept;
参数
m
要减去的月数。
y
要减去的年数。
返回值
*this
,反映减去的结果。
示例: operator-=
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_weekday_last ymwl{ year(1997) / January / Wednesday[last] };
std::cout << ymwl << '\n';
ymwl -= months{ 1 };
ymwl -= years{ 1 };
std::cout << ymwl << '\n';
return 0;
}
1997/Jan/Wed[last]
1995/Dec/Wed[last]
operator local_days
获取从 system_clock
纪元(1970 年 1 月 1 日)到此 year_month_weekday_last
的天数作为 local_days
constexpr explicit operator local_days() const noexcept;
返回值
如果为 ok()
,则返回天数作为 local_days{sys_days{*this}.time_since_epoch()}
。 否则,未指定返回值。
operator sys_days
获取从 system_clock
纪元(1970 年 1 月 1 日)到此 year_month_day
的天数作为 sys_days
。
constexpr operator sys_days() const noexcept;
返回值
如果 ok() == true
,则返回 sys_days
,表示 year() / month()
的最后一个 weekday()
(注意:/
是日期运算符,而不是除法)。 否则,未指定返回值。
weekday
获取 weekday
。
constexpr weekday weekday() const noexcept;
返回值
weekday_last
获取存储在此 year_month_weekday_last
中的 weekday_last
。
constexpr weekday_indexed weekday_last() const noexcept;
返回值
year
获取年份值。
constexpr year year() const noexcept;
返回值
year
值。
另请参阅
<chrono>
year
year_month
year_month_day
year_month_day_last
year_month_weekday
operator/
头文件引用