カテゴリ: Javaの例外処理 更新日: 2026/05/11

Javaのうるう年を判定する方法を解説!isLeapYearの使い方を初心者向けに丁寧解説

366
Java のうるう年を判定する方法(isLeapYear の使い方)

先生と生徒の会話形式で理解しよう

生徒

「Javaで2024年がうるう年かどうかを判定するには、どうすればいいんですか?」

先生

「JavaではisLeapYearというメソッドを使えば、うるう年かどうかを簡単に判定できますよ。」

生徒

「そんな便利なメソッドがあるんですね!日付クラスと関係あるんですか?」

先生

「はい、LocalDateYearクラスを使うと、非常にシンプルにうるう年のチェックができます。さっそく使い方を見ていきましょう!」

1. Javaでうるう年をチェックする方法とは?

1. Javaでうるう年をチェックする方法とは?
1. Javaでうるう年をチェックする方法とは?

Javaでは、うるう年(Leap Year)かどうかを判定するために、java.time.YearクラスのisLeapメソッドや、LocalDateisLeapYearメソッドを使用します。
これらはJava 8以降の新しい日時APIに含まれており、旧式のCalendarよりも直感的で使いやすくなっています。

2. YearクラスのisLeapメソッドの使い方

2. YearクラスのisLeapメソッドの使い方
2. YearクラスのisLeapメソッドの使い方

java.time.Yearクラスは、指定した年がうるう年かどうかを簡単に判定できる便利なクラスです。
isLeap()メソッドを使うことで、うるう年かどうかを論理値(true/false)で取得できます。


import java.time.Year;

public class LeapYearCheck {
    public static void main(String[] args) {
        Year year = Year.of(2024);
        boolean isLeap = year.isLeap();
        System.out.println("2024年はうるう年か?: " + isLeap);
    }
}

2024年はうるう年か?: true

3. LocalDateクラスを使ってうるう年を確認する

3. LocalDateクラスを使ってうるう年を確認する
3. LocalDateクラスを使ってうるう年を確認する

java.time.LocalDateにもisLeapYear()というメソッドがあります。
このメソッドを使えば、特定の日付オブジェクトが属する年がうるう年かを確認できます。


import java.time.LocalDate;

public class LocalDateLeapCheck {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2024, 1, 1);
        boolean isLeap = date.isLeapYear();
        System.out.println("この年はうるう年?: " + isLeap);
    }
}

この年はうるう年?: true

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

4. ユーザー入力からうるう年を判定する例

4. ユーザー入力からうるう年を判定する例
4. ユーザー入力からうるう年を判定する例

実用的なケースとして、ユーザーが入力した西暦がうるう年かどうかを判定するプログラムも紹介します。
標準入力を使って年を受け取り、うるう年かどうかを判定するシンプルな実装です。


import java.util.Scanner;
import java.time.Year;

public class InputLeapCheck {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("西暦を入力してください: ");
        int inputYear = scanner.nextInt();

        boolean isLeap = Year.of(inputYear).isLeap();
        System.out.println(inputYear + "年はうるう年ですか?: " + isLeap);
    }
}

5. うるう年の定義とは?Javaでの仕組み

5. うるう年の定義とは?Javaでの仕組み
5. うるう年の定義とは?Javaでの仕組み

うるう年は、4年ごとに訪れる2月29日がある年のことです。ただし、以下の条件を満たす必要があります:

  • 西暦が4で割り切れる年は基本的にうるう年
  • ただし100で割り切れる年は除く
  • さらに400で割り切れる年はうるう年

たとえば、2000年は400で割り切れるのでうるう年、1900年は100で割り切れても400で割り切れないので平年です。
JavaのisLeapisLeapYearは、このルールに従って正確に判定してくれます。

6. 旧API(Calendar)でのうるう年チェック方法

6. 旧API(Calendar)でのうるう年チェック方法
6. 旧API(Calendar)でのうるう年チェック方法

Java 8以前の環境ではjava.util.GregorianCalendarを使ってうるう年判定を行っていました。
互換性が必要な場面ではまだ使われることもありますが、できるだけjava.timeパッケージを使うのがおすすめです。


import java.util.GregorianCalendar;

public class OldLeapCheck {
    public static void main(String[] args) {
        GregorianCalendar calendar = new GregorianCalendar();
        boolean isLeap = calendar.isLeapYear(2024);
        System.out.println("2024年はうるう年?: " + isLeap);
    }
}

2024年はうるう年?: true

7. Javaでうるう年を使う実用例

7. Javaでうるう年を使う実用例
7. Javaでうるう年を使う実用例

Javaでうるう年を判定する処理は、実際の開発でもよく使われます。例えば:

  • カレンダーアプリで2月の末日を正確に表示する
  • 有効期限や保険の計算で日数を自動調整する
  • 2月29日を含む日付処理のバリデーション

うるう年の判定処理は、小さいけれど正確なシステムを作る上でとても重要なロジックの1つです。
JavaのisLeapYearYear.isLeap()を活用すれば、安全かつ簡単に実装できます。

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Javaでうるう年を判定する最も簡単な方法は何ですか?初心者でもすぐに使えるクラスを教えてください。

Javaでうるう年を判定する最もシンプルで推奨される方法は、Java 8以降で導入された「新しい日時API」を使用することです。具体的には、java.time.YearクラスのisLeapメソッド、またはjava.time.LocalDateクラスのisLeapYearメソッドを使用するのが一般的です。これらのメソッドは、西暦を引数に渡すか、日付オブジェクトから直接呼び出すだけで、その年がうるう年であれば「true(真)」、平年であれば「false(偽)」という論理値を返してくれます。従来の古いCalendarクラスに比べて、コードが直感的で読みやすいため、プログラミング初心者の方には特におすすめの手法となっています。
Javaの例外処理の一覧へ
新着記事
Flutter
Flutterでのリポジトリパターンの実装例
Flutterでリポジトリパターンを実装する方法を完全解説!初心者向けアーキテクチャ設計入門
Java
Java の Objects クラスを使って null チェックを簡単にする方法
JavaのObjectsクラスの使い方を完全ガイド!nullチェックを簡単・安全に行う方法
Java
Java の UUID クラスを使って一意の識別子を作成する方法
JavaのUUIDクラスの使い方を完全ガイド!初心者でもわかる一意な識別子の作成方法
Java
Java の古い日付クラス(Date, Calendar)と新しい日付 API の違い
JavaのDateとCalendarと新しい日付APIの違いとは?初心者向け完全ガイド
人気記事
Java
Java の Random クラスを使ってランダムな数値を生成する方法
JavaのRandomクラスの使い方を完全ガイド!初心者でもわかる乱数生成
Java
Java の getter メソッドと setter メソッドの使い方
Javaのgetterメソッドとsetterメソッドの使い方を完全ガイド!初心者でもわかるアクセス方法
AWS
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
AWS
【AWS】VPCとは?初心者向けに仕組み・用途・できることをわかりやすく解説
【AWS】VPCとは?初心者向けに仕組み・用途・できることをわかりやすく解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク