• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

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

    履歴 編集

    class
    <chrono>

    std::chrono::year

    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

    比較演算

    名前 説明 対応バージョン
    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

    文字列フォーマットサポート

    名前 説明 対応バージョン
    formatter std::formatterクラスの特殊化 C++20

    ハッシュサポート

    名前 説明 対応バージョン
    template <class T> struct hash; hashクラスの先行宣言 C++26
    template<> struct hash<chrono::year>; hashクラスのyearに対する特殊化 C++26

    #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

    参照