year_month_day_last
類別
代表特定年份和月份的最後一天。
year_month_day_last
支援月算術和年算術,但不支援天算術。 若要執行天導向算術,請將 轉換為 year_month_day_last
sys_days
。
語法
class year_month_day_last; // C++20
成員
名稱 | 描述 |
---|---|
建構函式 | 建構 year_month_day_last |
day |
取得月份/年的最後一天。 |
month |
取得月份。 |
month_day_last |
取得儲存在此 中的year_month_day_last month_day_last值。 |
ok |
確認 year 和 month 值在有效範圍內。 |
operator+= |
將月份或年份新增至此 year_month_day_last 。 |
operator-= |
從這個 year_month_day_last 減去月份或年份。 |
operator local_days |
取得從 sys_days epoch 到這個 year_month_day_last 的天數計數。 local_days 。 |
operator sys_days |
取得從 sys_days epoch 到這個 year_month_day_last 的天數計數。 sys_days 。 |
year |
取得年份。 |
非成員
名稱 | 描述 |
---|---|
operator+ |
新增月份或年份。 |
operator- |
減去月份或年份。 |
operator== |
判斷兩個 year_month_day_last 值是否相等。 |
operator<=> |
比較兩個 year_month_day_last 值。 運算子 >, >=, <=, <, != 是由編譯程式合成。 |
operator<< |
year_month_day_last 將輸出至數據流。 |
需求
標頭: <chrono>
(自C++20起)
命名空間:std::chrono
編譯程序選項: /std:c++latest
建構函式
year_month_day_last
建構指定月份和年份的 。
constexpr year_month_day_last(const year& y, const month_day_last& mdl) noexcept;
參數
mdl
的 month_day_last
月份值會儲存在建構 year_month_day_last
的 中。
y
值 year
會儲存在建 year_month_day_last
構的 中。
備註
如需用來指定日期之C++20 語法的相關信息,請參閱 operator/
範例:建立 year_month_day_last
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_day_last ymdl{ April / last / 1975 };
std::cout << ymdl;
return 0;
}
1975/Apr/last
day
如果 ok()
為 true
,則傳回代表年份最後一天、這個 year_month_day_last
所表示月份的一天。
constexpr day day() const noexcept;
傳回值
如果 ok()
為 true
,則傳 day
回 ,表示以 *this
表示年份的最後一天和月份。 否則,不會指定傳回值。
local_days
取得此 year_month_day_last
中的月份、日和年,做為天數計數。
constexpr explicit operator local_days() const noexcept;
傳回值
local_days{sys_days{*this}.time_since_epoch()}
範例
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_day_last ymdl{ June / last / 2021 };
auto ld = local_days(ymdl);
std::cout << ld.time_since_epoch();
return 0;
}
18808d
month
取得預存的月份值。
constexpr month month() const noexcept;
傳回值
month
值。
month_day_last
month_day_last
取得儲存在這個中的year_month_day_last
值。
constexpr month_day_last month_day_last() const noexcept;
傳回值
month_day_last
儲存在此 中的year_month_day_last
值。
operator sys_days
從系統時鐘的 Epoch 開始,取得月份 year_month_day_last
、日和年份。
constexpr explicit operator sys_days() const noexcept;
傳回值
傳回 sys_days{this->year()/this->month()/this->day()}
。
範例
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_day_last ymdl{ June / last / 2021 };
auto sd = sys_days(ymdl);
std::cout << sd.time_since_epoch();
return 0;
}
18808d
year
取得年份。
constexpr year year() const noexcept;
傳回值
year
。
ok
檢查儲存在此 中的 year_month_day_last
和 month_day_last
值是否year
都位於有效範圍內。
constexpr bool ok() const noexcept;
傳回值
true
year
如果儲存在此中的 year_month_day_last
與 month_day_last
值都位於有效範圍中, 則為 。 否則為 false
。
operator+=
將月份或年份新增至此 year_month_day_last
。
1) constexpr year_month_day_last& operator+=(const months& m) noexcept;
2) constexpr year_month_day_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_day_last ymdl{ April / last / 1975 };
std::cout << ymdl << '\n';
ymdl += months{1};
ymdl += years{1};
std::cout << ymdl;
return 0;
}
1975/Apr/last
1976/May/last
operator-=
從這個 year_month_day_last
減去月份或年份。
1) constexpr year_month_day_last& operator-=(const months& m) noexcept;
2) constexpr year_month_day_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_day_last ymdl{ April / last / 1975 };
std::cout << ymdl << '\n';
ymdl -= months{1};
ymdl -= years{1};
std::cout << ymdl;
return 0;
}
1975/Apr/last
1974/Mar/last
另請參閱
<chrono>
year
year_month
year_month_day
year_month_weekday
year_month_weekday_last
operator/
標頭檔參考