year
クラス
グレゴリオ暦での年を表します。
構文
class year; // C++20
解説
year
は、-32767 から 32767 の間の年の値を保持できます。
メンバー
名前 | 説明 |
---|---|
コンストラクター | year を構築します |
is_leap |
年が閏年かどうかを調べます。 |
max |
年の最大値を返します。 |
min |
年の最小値を返します。 |
ok |
年の値が有効な範囲 [-32767, 32767] 内にあることを確認します。 |
operator+ |
単項プラス |
operator++ |
年をインクリメントします。 |
operator+= |
指定された年数をこの year に追加します。 |
operator- |
単項マイナス。 |
operator-- |
年をデクリメントします。 |
operator-= |
指定された年数をこの year から減算します。 |
operator int |
year 値を取得します。 |
非メンバー
名前 | 説明 |
---|---|
from_stream |
指定した形式を使用して、ストリームから year を解析します。 |
operator+ |
年数を追加します。 |
operator- |
年数を減算します。 |
operator== |
2 つの年が等しいかどうかを判断します。 |
operator<=> |
この year を別の year と比較します。 演算子 >, >=, <=, <, != はコンパイラによって合成されます。 |
operator<< |
指定したストリームに year を出力します。 |
operator""y |
リテラル year を作成します。 |
要件
Header: <chrono>
(C++20 以降)
名前空間: std::chrono
コンパイラ オプション: /std:c++latest
コンストラクター
year
を構築します。
1) year() = default;
2) explicit constexpr year(unsigned y) noexcept;
パラメーター
y
year
を値 y
を使用して構築します。
解説
1) 既定のコンストラクターは、year
値を初期化しません。
2) 指定された値を使用して year
を構築します。
例: year
を作成する
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{2020};
year y2 = 2021y;
std::cout << y << ", " << y2;
return 0;
}
2020, 2021
is_leap
この year
に格納された値の範囲が有効であるかを確認します。
constexpr bool is_leap() const noexcept;
戻り値
年の値が閏年である場合は true
です。 それ以外の場合は false
。
閏年は、4 で割り切れるが 100 では割り切れない年、または 400 で割り切れる年です。
max
年の最大値を返します。
static constexpr year max() noexcept;
戻り値
year{32767}
min
年の最小値を返します。
static constexpr year min() noexcept;
戻り値
year{-32767}
ok
この year
に格納された値の範囲が有効であるかを確認します。
constexpr bool ok() const noexcept;
戻り値
年の値が [-32676, 32767] の範囲内にある場合は true
です。 それ以外の場合は false
。
operator+
単項プラスを適用します。
constexpr year operator+() const noexcept;
戻り値
*this
を返します。
例: 単項 operator+
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{-1};
std::cout << +y;
return 0;
}
-0001
operator++
年の値に 1 を加算します。
1) constexpr year& operator++() noexcept;
2) constexpr year operator++(int) noexcept;
戻り値
1) インクリメント後のこの年への参照 (後置インクリメント) を返します。
2) インクリメント前の year
のコピー (前置インクリメント) を返します。
例: operator++
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{2021};
std::cout << y << " " << ++y << "\n"; // constexpr year& operator++() noexcept
std::cout << y << " " << y++ << "\n"; // constexpr year operator++(int) noexcept
std::cout << y << "\n";
return 0;
}
2021 2022
2022 2022
2023
解説
インクリメントされた結果が 32767 を超えた場合、-32768 にオーバーフローします
operator-
単項マイナス。 year
を負数化します。
constexpr year operator-() const noexcept; // C++20
戻り値
year
の負のコピーを返します。
例: 単項 operator-
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{1977};
std::cout << -y << '\n';
return 0;
}
-1977
operator--
年の値から 1 を減算します。
1) constexpr year& operator--() noexcept;
2) constexpr year operator--(int) noexcept;
戻り値
1) この year
後 への参照がデクリメントされた (後置デクリメント)。
2) year
前の のコピーがデクリメントされました (プレフィックスのデクリメント)。
例: operator--
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{2021};
std::cout << y << " " << --y << "\n"; // constexpr year& operator++() noexcept
std::cout << y << " " << y-- << "\n"; // constexpr year operator++(int) noexcept
std::cout << y << "\n";
return 0;
}
2021 2020
2020 2020
2019
解説
デクリメントされた結果が -32768 未満の場合、32767 に設定されます。
operator+=
この year
に日数を加算します。
constexpr year& operator+=(const years& y) noexcept;
パラメーター
y
加算する年数。
戻り値
*this
インクリメントされた結果が 32767 を超えた場合、-32768 にオーバーフローします。
operator-=
この year
から日を減算します。
constexpr year& operator-=(const years& y) noexcept;
パラメーター
y
減算する年数。
戻り値
*this
. デクリメントされた結果が -32768 未満の場合、32767 に設定されます。
operator int
year
値を取得します。
explicit constexpr operator int() const noexcept;
戻り値
year
タグの値
例: operator int()
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year y{2020};
int yearValue = static_cast<int>(y);
std::cout << yearValue;
return 0;
}
2020
関連項目
<chrono>
year_month
year_month_day
year_month_day_last
year_month_weekday
year_month_weekday_last
ヘッダー ファイル リファレンス