• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

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

    履歴 編集

    function
    <chrono>

    std::chrono::year::is_leap

    constexpr bool is_leap() const noexcept; // (1) C++20
    

    概要

    うるう年かを判定する。

    戻り値

    コンストラクタで設定されて保持している年を表す値yがあるとして、以下を返す:

    return y % 4 == 0 && (y % 100 != 0 || y % 400 == 0);
    

    #include <cassert>
    #include <chrono>
    
    namespace chrono = std::chrono;
    
    int main()
    {
      // 4年周期のうるう年
      assert(chrono::year{2004}.is_leap());
      assert(chrono::year{2008}.is_leap());
      assert(chrono::year{2012}.is_leap());
      assert(chrono::year{2016}.is_leap());
      assert(chrono::year{2020}.is_leap());
    
      // 400年周期のうるう年
      assert(chrono::year{1600}.is_leap());
      assert(chrono::year{2000}.is_leap());
      assert(chrono::year{2400}.is_leap());
    
      // 100年周期は、400年周期でない限り非うるう年
      assert(!chrono::year{1900}.is_leap());
      assert(!chrono::year{2100}.is_leap());
      assert(!chrono::year{2200}.is_leap());
      assert(!chrono::year{2300}.is_leap());
    }
    

    出力

    バージョン

    言語

    • C++20

    処理系