最終更新日時(UTC): 2024年06月11日 13時45分38秒
Akira Takahashi が更新

履歴 編集

function
<chrono>

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

    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

### 処理系

- Clang: 8.0 ✅
- GCC: 9.2 ❌
- Visual C++: 2019 Update 3 ❌