2022.09.28
Javaプログラミング
閏年(うるうどし)の判定
世界中で使われている「グレゴリオ暦」では、閏年(うるう年)は以下のように決められています。
閏年をプログラムで判定するには、以下の順番で判定していきます。
・上記の条件を1つも満たさなかった場合は、「平年」とする。
以下は判定例です。
Javaソースコード
Uruudoshi.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028
public class Uruudoshi { // 閏年(うるうどし)判定メソッド static boolean isUruudoshi( int year ) { // 400で割り切れる西暦は「閏年」です。 if ( 0 == ( year % 400 ) ) return true; // 100で割り切れる西暦は「閏年」ではありません。 if ( 0 == ( year % 100 ) ) return false; // 4で割り切れる西暦は「閏年」です。 if ( 0 == ( year % 4 ) ) return true; // 上記の条件を満たさない場合は「閏年」ではありません。 return false; } // メイン public static void main( String[] args ) { // 西暦1900年から2100年で、閏年を判定 for ( int year = 1900; year <= 2100; year ++ ) { // 閏年かを判定 if ( isUruudoshi( year ) ) System.out.println( "西暦" + year + "年は、閏年" ); } } }
実行結果
実行
C:\talavax\javasample>java Uruudoshi
出力結果
西暦1904年は、閏年 西暦1908年は、閏年 西暦1912年は、閏年 西暦1916年は、閏年 西暦1920年は、閏年 西暦1924年は、閏年 西暦1928年は、閏年 西暦1932年は、閏年 西暦1936年は、閏年 西暦1940年は、閏年 西暦1944年は、閏年 西暦1948年は、閏年 西暦1952年は、閏年 西暦1956年は、閏年 西暦1960年は、閏年 西暦1964年は、閏年 西暦1968年は、閏年 西暦1972年は、閏年 西暦1976年は、閏年 西暦1980年は、閏年 西暦1984年は、閏年 西暦1988年は、閏年 西暦1992年は、閏年 西暦1996年は、閏年 西暦2000年は、閏年 西暦2004年は、閏年 西暦2008年は、閏年 西暦2012年は、閏年 西暦2016年は、閏年 西暦2020年は、閏年 西暦2024年は、閏年 西暦2028年は、閏年 西暦2032年は、閏年 西暦2036年は、閏年 西暦2040年は、閏年 西暦2044年は、閏年 西暦2048年は、閏年 西暦2052年は、閏年 西暦2056年は、閏年 西暦2060年は、閏年 西暦2064年は、閏年 西暦2068年は、閏年 西暦2072年は、閏年 西暦2076年は、閏年 西暦2080年は、閏年 西暦2084年は、閏年 西暦2088年は、閏年 西暦2092年は、閏年 西暦2096年は、閏年
Javaソースコードの解説
001
public class Uruudoshi {
クラス名を、Uruudoshiとしています。
002 003 004
// 閏年(うるうどし)判定メソッド static boolean isUruudoshi( int year ) {
005 006
// 400で割り切れる西暦は「閏年」です。
if ( 0 == ( year % 400 ) ) return true;
008 009
// 100で割り切れる西暦は「閏年」ではありません。
if ( 0 == ( year % 100 ) ) return false;
011 012
// 4で割り切れる西暦は「閏年」です。
if ( 0 == ( year % 4 ) ) return true;
014 015
// 上記の条件を満たさない場合は「閏年」ではありません。 return false;
020
public static void main( String[] args ) {
このmainメソッドからプログラムを実行します。
021 022
// 西暦1900年から2100年で、閏年を判定 for ( int year = 1900; year <= 2100; year ++ ) {
023 024 025
// 閏年かを判定 if ( isUruudoshi( year ) ) System.out.println( "西暦" + year + "年は、閏年" );
変数yearをisUruudoshiメソッドに渡して判定しています。
「閏年」と判定された場合、printlnメソッドでコンソール出力しています。
以上です。
次に読んでほしいコンテンツ
関連コンテンツ
割り算で「割り切れる」、「割り切れない」ってどういうこと?