次の方法で共有


year_month_day_last クラス

特定の年と月の最終日を表します。

year_month_day_last では、月の算術演算と年の算術演算がサポートされますが、日の算術演算はサポートされません。 日指向の算術演算を実行するには、year_month_day_lastsys_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 yearmonth の値が有効な範囲内にあるか確認します。
operator+= この year_month_day_last に月または年を追加します。
operator-= この year_month_day_last から月または年を減算します。
operator local_days sys_days エポックからこの year_month_day_last への日数を local_days として取得します。
operator sys_days sys_days エポックからこの year_month_day_last への日数を sys_days として取得します。
year 年を取得します。

非メンバー

名前 説明
operator+ 月または年を加算します。
operator- 月または年を減算します。
operator== 2 つの year_month_day_last 値が等しいかどうかを判断します。
operator<=> 2 つの year_month_day_last 値を比較します。 演算子 >, >=, <=, <, != はコンパイラによって合成されます。
operator<< year_month_day_last をストリームに出力します。

要件

Header: <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 で表される年の月の最終日を表す day を返します。

constexpr day day() const noexcept;

戻り値

ok()true の場合、*this で表される年の月の最終日を表す day を返します。 それ以外の場合、返される値は指定されません。

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

この year_month_day_last に格納されている month_day_last 値を取得します。

constexpr month_day_last month_day_last() const noexcept;

戻り値

この year_month_day_last に格納されている month_day_last 値。

operator sys_days

システム クロックのエポックからの日数として、この 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 に格納されている yearmonth_day_last と値の両方が有効な範囲内にあるか確認します。

constexpr bool ok() const noexcept;

戻り値

この year_month_day_last に格納されている yearmonth_day_last と値の両方が有効な範囲内にある場合は true。 それ以外の場合は 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/
ヘッダー ファイル リファレンス