year_month_weekday
類別
代表月份的特定年份、月份和第 n 個工作日。
語法
class year_month_weekday; // C++20
備註
year_month_weekday
支援以年和月為導向的算術,但不支援以天為導向的算術。 若為天導向算術,請使用 sys_days
轉換 sys_days
轉換為 ,其支援天導向算術。
year_month_weekday
是一種簡單可複製且標準版面配置類別類型。
成員
名稱 | 描述 |
---|---|
Constructor |
year_month_weekday 使用指定的月份與工作日建構 。 |
index |
取得工作日的索引。 |
month |
取得月份值。 |
ok |
檢查是否 year_month_weekday 有效。 |
operator+= |
新增指定的月數或年份。 |
operator-= |
減去指定的月數或年份。 |
operator local_days |
取得從 system_clock epoch 到這個 year_month_weekday 的天數計數。 local_days 。 |
operator sys_days |
取得從 system_clock epoch 到這個 year_month_weekday 的天數計數。 sys_days 。 |
weekday |
取得工作日。 |
weekday_indexed |
取得儲存在此 中的 year_month_weekday [weekday_indexed ] 。 |
year |
取得年份。 |
非成員
名稱 | 描述 |
---|---|
operator+ |
新增月份或年份。 |
operator- |
減去月份或年份。 |
operator== |
判斷兩個 year_month_weekday 值是否相等。 |
operator<< |
year_month_weekday 將 輸出至指定的數據流。 |
需求
標頭: <chrono>
(自C++20起)
命名空間:std::chrono
編譯程序選項: /std:c++latest
建構函式
建構 year_month_weekday
。
// 1)
year_month_weekday() = default
// 2)
constexpr year_month_weekday(const year& y, const month& m, const weekday_indexed& wdi) noexcept;
// 3)
constexpr explicit year_month_weekday(const local_days& dp) noexcept;
// 4)
constexpr year_month_weekday(const sys_days& dp) noexcept;
參數
m
month
值。
wdi
weekday
值。
y
year
值。
備註:建構函式
1) 預設建構函式不會初始化任何欄位。
2) 建構 year_month_weekday
對應至指定 year
、 month
與 weekday_indexed
的 。
3) 建構 year_month_weekday
對應至 所表示日期的 sys_days{dp.time_since_epoch()}
。
4) 建構 year_month_weekday
對應至 所表示日期的 dp
。 對於任何 為的 year_month_weekday
(ymdl)而言,ok()
與 year_month_weekday{sys_days{ymdl}}
operator==
的比較將會是 true
。true
如需用來指定日期之C++20 語法的相關信息,請參閱 operator/
範例:建立 year_month_weekday
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_weekday ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
index
取得此 year_month_weekday
中工作日的周索引。
constexpr unsigned index() const noexcept;
傳回值
工作日的索引。 例如,如果工作日是當周的第一個星期三,則索引會是 1。
month
取得月份值。
constexpr month month() const noexcept;
傳回值
month
值。
ok
檢查儲存在此 中的 year_month_weekday
值是否有效。 year
儲存在此 中的 year_month_weekday
、 month
與 weekday_index
都必須ok
讓函式傳回 true
。 否則傳回 false
。
constexpr bool ok() const noexcept;
傳回值
true
如果值有效,則 year_month_weekday
為 。 否則為 false
。
year_month_weekday
如果 兩者month
都有效且值有效,則 weekday_indexed
為有效。
operator+=
將月份或年份新增至此 year_month_weekday
。
1) constexpr year_month_weekday& operator+=(const months& m) noexcept;
2) constexpr year_month_weekday& 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 ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
ymw += months{1};
ymw += years{1};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
1998/Feb/Wed[1]
operator-=
從這個 year_month_weekday
減去月份或年份。
1) constexpr year_month_weekday& operator-=(const months& m) noexcept;
2) constexpr year_month_weekday& 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 ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
ymw -= months{1};
ymw -= years{1};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
1995/Dec/Wed[1]
operator local_days
取得從 system_clock
epoch (1/1/1/1970) 到這個 year_month_weekday
的天數計數 local_days
constexpr explicit operator local_days() const noexcept;
傳回值
如果 ok()
為 ,則會以 傳回天數 local_days{sys_days{*this}.time_since_epoch()}
的計數。 否則傳回的值未指定。
operator sys_days
取得從 system_clock
epoch (1/1/1/1970) 到這個year_month_day
的天數計數。sys_days
constexpr operator sys_days() const noexcept;
傳回值
如果ok()
為 ,則傳sys_days
回 ,表示第一個 weekday()
之後的year()/month()
日期(index() - 1) * 7
。 如果 index()
為 0
,則傳 sys_days
回的 表示第一個 weekday()
的 year()/month()
日期 7 天前。
weekday
weekday
取得儲存在此 weekday_indexed
中儲存的 year_month_weekday
。
constexpr weekday weekday() const noexcept;
傳回值
weekday
值。
weekday_indexed
weekday_indexed
取得儲存在這個 中的 year_month_weekday
。
constexpr weekday_indexed weekday_indexed() const noexcept;
傳回值
year
取得年份值。
constexpr year year() const noexcept;
傳回值
year
值。
另請參閱
<chrono>
year
year_month
year_month_day
year_month_day_last
year_month_weekday_last
operator/
標頭檔參考