std::chrono::operator+, std::chrono::operator- (std::chrono::year_month_day_last)
來自 cppreference.com
< cpp | chrono | year month day last
定義於標頭檔案 <chrono> |
||
constexpr std::chrono::year_month_day_last operator+( const std::chrono::year_month_day_last& ymdl, |
(C++20 起) | |
constexpr std::chrono::year_month_day_last operator+( const std::chrono::months& dm, |
(C++20 起) | |
constexpr std::chrono::year_month_day_last operator+( const std::chrono::year_month_day_last& ymdl, |
(C++20 起) | |
constexpr std::chrono::year_month_day_last operator+( const std::chrono::years& dy, |
(C++20 起) | |
constexpr std::chrono::year_month_day_last operator-( const std::chrono::year_month_day_last& ymdl, |
(C++20 起) | |
constexpr std::chrono::year_month_day_last operator-( const std::chrono::year_month_day_last& ymdl, |
(C++20 起) | |
1,2) 將 dm.count() 個月新增到 ymdl 所表示的日期。結果與 std::chrono::year_month(ymdl.year(), ymdl.month()) + dm 具有相同的
year()
和 month()
。3,4) 將 dy.count() 年新增到 ymdl 所表示的日期。結果等價於 std::chrono::year_month_day_last(ymdl.year() + dy, ymdl.month_day_last())。
5) 從 ymdl 所表示的日期中減去 dm.count() 個月。等價於 ymdl + -dm。
6) 從 ymdl 所表示的日期中減去 dy.count() 年。等價於 ymdl + -dy。
對於可轉換為 std::chrono::years 和 std::chrono::months 的時長,如果呼叫否則會有歧義,則首選 years
過載 (3,4,6)。
[編輯] 示例
執行此程式碼
#include <cassert> #include <chrono> #include <iostream> int main() { auto ymdl{11/std::chrono::last/2020}; std::cout << ymdl << '\n'; ymdl = std::chrono::years(10) + ymdl; std::cout << ymdl << '\n'; assert(ymdl == std::chrono::day(30)/ std::chrono::November/ std::chrono::year(2030)); ymdl = ymdl - std::chrono::months(6); std::cout << ymdl << '\n'; assert(ymdl == std::chrono::day(31)/ std::chrono::May/ std::chrono::year(2030)); }
輸出
2020/Nov/last 2030/Nov/last 2030/May/last