最終更新日時(UTC):
が更新

履歴 編集

class template
<chrono>

std::chrono::year(C++20)

namespace std::chrono {
  class year;
}

概要

yearは、年単体の値を表すカレンダー表現のためクラスである。

値の範囲として[-32767, 32767]を扱う。

このクラスは等値比較および大小比較ができ、EqualityComparableおよびLessThanComparableの要件を満たす。

このクラスは、トリビアルコピー可能で、かつスタンダードレイアウト型である。

備考

  • このクラスは経過時間を表す型ではない。年の経過時間はyearsである

メンバ関数

構築/コピー/破棄

名前 説明 対応バージョン
(constructor) コンストラクタ C++20
year& operator=(const year&) = default;
year& operator=(year&&) = default;
代入演算子 C++20

算術演算

名前 説明 対応バージョン
operator+ 正の符号 C++20
operator- 負の符号 (符号反転する) C++20
operator++ インクリメント C++20
operator-= デクリメント C++20
operator+= 加算の複合代入 C++20
operator-= 減算の複合代入 C++20

うるう年

名前 説明 対応バージョン
is_leap うるう年かを判定する C++20

変換

名前 説明 対応バージョン
operator int int型への変換演算子 C++20

値の範囲

名前 説明 対応バージョン
ok 値が範囲[min(), max()]に収まっているか判定する C++20

静的メンバ関数

値の範囲

名前 説明 対応バージョン
min 扱える最小値 C++20
max 扱える最大値 C++20

非メンバ関数

算術演算

名前 説明 対応バージョン
operator+ 加算 C++20
operator- 減算 C++20

比較演算

名前 説明 対応バージョン
operator== 等値比較を行う C++20
bool operator!=(const year&, const year&) noexcept; 非等値比較を行う (==により使用可能) C++20
operator<=> 三方比較を行う C++20
bool operator<(const year&, const year&) noexcept; 左辺が右辺より小さいかを判定する (<=>により使用可能) C++20
bool operator<=(const year&, const year&) noexcept; 左辺が右辺以下を判定する (<=>により使用可能) C++20
bool operator>(const year&, const year&) noexcept; 左辺が右辺より大きいかを判定する (<=>により使用可能) C++20
bool operator>=(const year&, const year&) noexcept; 左辺が右辺以上を判定する (<=>により使用可能) C++20

入出力

名前 説明 対応バージョン
operator<< 出力ストリームに出力する C++20
from_stream フォーマット指定して入力ストリームから入力する C++20

リテラル

名前 説明 対応バージョン
y 年リテラル C++20

#include <iostream>
#include <chrono>

namespace chrono = std::chrono;

int main()
{
  // yearオブジェクトの構築、および年を進める
  chrono::year y{2020};
  y += chrono::years{3};
  std::cout << y << std::endl;

  // 年リテラルyを使用してyearオブジェクトを構築し、
  // operator/を使用して日付を組み立てる
  using namespace std::chrono_literals;
  chrono::year_month_day date = 2020y/3/1;
  std::cout << date << std::endl;
}

出力

2023
2020/Mar/01

バージョン

言語

  • C++20

処理系

  • Clang: 8.0 (入出力ストリームなし)
  • GCC: (9.2時点で実装なし)
  • Visual C++: (2019 Update 3時点で実装なし)