共用方式為


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_lastmonth_day_last值。
ok 確認 yearmonth 值在有效範圍內。
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;

參數

mdlmonth_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_lastmonth_day_last 值是否year都位於有效範圍內。

constexpr bool ok() const noexcept;

傳回值

trueyear如果儲存在此中的 year_month_day_lastmonth_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/
標頭檔參考