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 エポックからこの 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
に格納されている year
値 month_day_last
と値の両方が有効な範囲内にあるか確認します。
constexpr bool ok() const noexcept;
戻り値
この year_month_day_last
に格納されている year
値 month_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/
ヘッダー ファイル リファレンス