Java

うるう年をチェックするJavaプログラム

2024年2月29日

2024年は閏年なので、うるう年の判定ロジック。

本来は愚直にやらないで、ライブラリを利用した方がいいので参考までに。

すべてのうるう年の条件。

  1. 世紀年とは、00で終わる年のことである。世紀年は、400で割り切れる場合のみ閏年となる。
  2. 閏年(世紀年を除く)は、4で正確に割り切れる場合に識別できる。
  3. 世紀年は4と100で割り切れる。
  4. 非世紀年は4で割り切れるだけである。
// Java program to find a leap year
// Importing Classes/Files
import java.io.*;

// Class for leap-year dealing
public class GeeksforGeeks {
    // Method to check leap year
    public static void isLeapYear(int year)
    {
        // flag to take a non-leap year by default
        boolean is_leap_year = false;

        // If year is divisible by 4
        if (year % 4 == 0) {
            is_leap_year = true;

            // To identify whether it is a
            // century year or not
            if (year % 100 == 0) {
                // Checking if year is divisible by 400
                // therefore century leap year
                if (year % 400 == 0)
                    is_leap_year = true;
                else
                    is_leap_year = false;
            }
        }

        // We land here when corresponding if fails
        // If year is not divisible by 4
        else

            // Flag dealing- Non leap-year
            is_leap_year = false;

        if (!is_leap_year)
            System.out.println(year + " : Non Leap-year");
        else
            System.out.println(year + " : Leap-year");
    }

    // Driver Code
    public static void main(String[] args)
    {
        // Calling our function by
        // passing century year not divisible by 400
        isLeapYear(2024);

        // Calling our function by
        // passing Non-century year
        isLeapYear(2025);
    }
}

結果の出力
2024 : Leap-year
2025 : Non Leap-year

Javaうるう年判定その他の方法

Java でのうるう年判定のプログラムを書くときに使える関数は、以下に示すものが使えます。

  1. Scanner Classの使用
  2. 三項演算子の使用
  3. 組み込みの isLeap() メソッドの使用
  • この記事を書いた人

朝倉卍丸

シングルモルトスコッチなどのお土産を持ってきた人を助けるのが好きです。サービスの分割が重要ですが、まあ昔ながらの方法でやりたいこともありますよね。

よく読まれている記事

条件の0=0は全てが正であるを意味するSQL 1

SQLの条件に0=0のような記述を見かけます。 変わった書き方の条件ですが、これは「全てが正である」事を意味しており、結合条件の場合はCROSS JOINと同じです。 下記の例で言えば、結合するsub ...

DISTINCTを使わないで重複排除を考えるSQL 2

SQLのDISTINCTはEXISTSとかGROUP BYでなんとかする事もできます。 DISTINCTは暗黙的なソートがされますが、何のDBを使うにせよ過去のバージョンならともかく、最近のバージョン ...

RFC 5322に準拠させた正規表現言語別 3

RFC5322で定義されている正規表現を、各言語の正規表現に変化させた形になります。 完全な電子メール正規表現は存在しないので、結局のところ何かの公式基準に従っていたとしても、自分が携わるサービスのル ...

-Java