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

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の例外処理の一覧へ
新着記事
FlutterのMVP・MVVMアーキテクチャの違いと使い分け
FlutterのMVP・MVVMアーキテクチャの違いと使い分けを初心者向けに解説!
オニオンアーキテクチャの基本とFlutterでの適用例
オニオンアーキテクチャの基本とFlutterでの適用例を初心者向けに解説
クリーンアーキテクチャとは?Flutterでの導入メリット
クリーンアーキテクチャとは?Flutterでの導入メリットをやさしく解説
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金まとめ
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金を初心者向けに徹底解説
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説

🔌 USBポート不足を解消

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

UGREEN USB-Cハブを見る

※ Amazon広告リンク