std::chrono:: operator+, std::chrono:: operator- (std::chrono::year_month_weekday)
year()
和
month()
,以及与
ymwd
相同的
weekday()
和
index()
。
对于可同时转换为
std::chrono::years
和
std::chrono::months
的时间段,若调用存在歧义,则优先选择
years
重载
(3,4,6)
。
注释
即使
ymwd.
ok
(
)
为
true
,若
ymwd.
index
(
)
等于
5
,生成的
year_month_weekday
可能仍无法表示有效日期。
示例
#include <cassert> #include <chrono> #include <iostream> int main() { auto ymwdi{1/std::chrono::Wednesday[1]/2021}; std::cout << ymwdi << '\n'; ymwdi = std::chrono::years(5) + ymwdi; // 2026年1月的第一个星期三 std::cout << ymwdi << '\n'; assert(static_cast<std::chrono::year_month_day>(ymwdi) == std::chrono::January/7/2026); ymwdi = ymwdi - std::chrono::months(6); // 2025年7月的第一个星期三 std::cout << ymwdi << '\n'; assert(static_cast<std::chrono::year_month_day>(ymwdi) == std::chrono::July/2/2025); }
输出:
2021/Jan/Wed[1] 2026/Jan/Wed[1] 2025/Jul/Wed[1]