2022.09.28

Javaプログラミング

閏年(うるうどし)の判定

世界中で使われている「グレゴリオ」では、閏年うるう年)は以下のように決められています。

西暦年号が4で割り切れる年を「閏年」とする。ただし、100で割り切れて、400で割り切れない年は「平年」とする。

閏年をプログラムで判定するには、以下の順番で判定していきます。

西暦年号が400で割り切れる場合は、「閏年」とする。

西暦年号が100で割り切れる場合は、「平年」とする。

西暦年号が4で割り切れる場合は、「閏年」とする。

・上記の条件を1つも満たさなかった場合は、「平年」とする。

以下は判定例です。

西暦2000年は、400で割り切れるので「閏年」です。

西暦1900年は、400で割り切れず、100で割り切れるので「平年」です。

西暦2020年は、400で割り切れず、100で割り切れず、4で割り切れるので「閏年」です。

西暦2005年は、400で割り切れず、100で割り切れず、4で割り切れないので「平年」です。

Javaソースコード

西暦1900~2100年の間の閏年を見つけるソースコードです。

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 )
	{

閏年かを判定するisUruudoshiメソッドです。西暦int型変数yearで渡し、「閏年」の場合true「平年」の場合falseを戻します。

005
006
		// 400で割り切れる西暦は「閏年」です。
		if ( 0 == ( year % 400 ) ) return true;

西暦を表す変数yearが400で割り切れる場合は「閏年」なので、return文trueを戻し、メソッドを抜けます。

008
009
		// 100で割り切れる西暦は「閏年」ではありません。
		if ( 0 == ( year % 100 ) ) return false;

西暦を表す変数yearが100で割り切れる場合は「平年」なので、return文falseを戻し、メソッドを抜けます。

011
012
		// 4で割り切れる西暦は「閏年」です。
		if ( 0 == ( year % 4 ) ) return true;

西暦を表す変数yearが4で割り切れる場合は「閏年」なので、return文trueを戻し、メソッドを抜けます。

014
015
		// 上記の条件を満たさない場合は「閏年」ではありません。
		return false;

西暦を表す変数yearが400、100、4で割り切れない場合はここまで到達します。

400、100、4で割り切れない場合、「平年」なので、return文falseを戻し、メソッドを抜けます。

020
	public static void main( String[] args ) {

このmainメソッドからプログラムを実行します。

021
022
		// 西暦1900年から2100年で、閏年を判定
		for ( int year = 1900; year <= 2100; year ++ ) {

for文で、変数yearを1900~2100年まで1ずつ増やしていくループを作成しています。

023
024
025
			// 閏年かを判定
			if ( isUruudoshi( year ) )
				System.out.println( "西暦" + year + "年は、閏年" );

変数yearをisUruudoshiメソッドに渡して判定しています。

「閏年」と判定された場合、printlnメソッドコンソール出力しています。

以上です。

次に読んでほしいコンテンツ

Javaの学習に役立つソースコードを多数紹介しています。是非、ご覧ください。

2022.09.10

割り算で割り切れずに残った端数を剰余(余り)といいます。この剰余の計算をJavaのソースコードを使って解説しています。

2020.03.23

メソッドの定義方法を詳しく解説しています。Javaのサンプルソースコードを使った説明もあります。

2020.03.23

プログラミング、ITに関する用語をまとめています。

2022.10.17

条件式を判断して処理を分岐する方法を詳しく説明しています。

2023.03.20

メソッドを抜けるときに使用するreturn文について説明しています。

2020.03.20

変数やクラスに格納されている値をコンソール出力する方法は?

2020.03.23

プログラムの最初に実行されるメソッドは?

2022.12.13

プログラミングで使う変数って何?

2020.03.23

Javaのプログラムを書いてみませんか?プログラムの書き方をくわしく説明しています。

2020.03.23

「Javaソースコード」から実行可能な「オブジェクトコード」に変換する方法をくわしく説明しています。

2020.03.23

Javaのプログラムを作ってみませんか?プログラミングに必要なものの用意から実行までを説明しています。

2020.03.23

Swingパッケージを使ってグラフィック表示を行う方法を解説しています。

2020.03.23

画像フォーマット形式・色・大きさ・傾きなどの変更、特定の図形(文字・記号など)を見つけたり、取り出したりする画像処理について詳しく解説。

2015.11.29

繰り返し処理を使ったJavaのソースコードサンプルを紹介しています。

2020.03.23

配列を使うJavaソースコードを多数紹介しています。

2021.05.18

数学に関係するJavaのメソッドやソースコードなどを紹介しています。

2022.10.25

三角形、台形、円などいろいろな図形の面積を計算するプログラムを紹介しています。詳しくは、記事をご覧ください。

2021.05.18

StringクラスとStringBuilderクラスを利用したプログラミングの仕方を紹介しています。

2016.12.16

Javaを使った簡単な応用プログラム(生年月日から年齢を計算プログラムなど)を紹介しています。

2022.07.07

日本で使われてきた伝統文様「和柄」について解説しています。

2022.07.27

関連コンテンツ

日付・時刻の表示および操作に使用するCalendarクラスについて説明しています。

2017.05.11

割り算で「割り切れる」、「割り切れない」ってどういうこと?

西暦と和暦を対応した表を掲載しています。興味のある方は、ご覧ください。

2020.03.23

Javaのプログラムを書いてみませんか?プログラムの書き方をくわしく説明しています。

2020.03.23

Javaプログラムの構成について解説しています。詳しくは、こちらをご覧ください。

2020.03.23

プログラミングで使う変数って何?

2020.03.23

メソッドの定義方法を詳しく解説しています。Javaのサンプルソースコードを使った説明もあります。

2020.03.23

条件式を判断して処理を分岐する方法を詳しく説明しています。

2023.03.20

メソッドを抜けるときに使用するreturn文について説明しています。

2020.03.20

プログラムの最初に実行されるメソッドは?

2022.12.13

処理を繰り返すために使用するfor文について解説しています。

2020.03.23

繰り返し処理の作り方を解説しています。

2016.03.02

変数やクラスに格納されている値をコンソール出力する方法は?

2020.03.23

「ゆるゆるプログラム」のコンテンツを紹介しています。興味のある方はこの記事をご覧ください。

2020.03.23

Javaの学習に役立つソースコードを多数紹介しています。是非、ご覧ください。

2022.09.10

Javaを使った簡単な応用プログラム(生年月日から年齢を計算プログラムなど)を紹介しています。

2022.07.07

Swingパッケージを使ってグラフィック表示を行う方法を解説しています。

2020.03.23

画像フォーマット形式・色・大きさ・傾きなどの変更、特定の図形(文字・記号など)を見つけたり、取り出したりする画像処理について詳しく解説。

2015.11.29

三角形、台形、円などいろいろな図形の面積を計算するプログラムを紹介しています。詳しくは、記事をご覧ください。

2021.05.18

配列を使うJavaソースコードを多数紹介しています。

2021.05.18

繰り返し処理を使ったJavaのソースコードサンプルを紹介しています。

2020.03.23

数学に関係するJavaのメソッドやソースコードなどを紹介しています。

2022.10.25

StringクラスとStringBuilderクラスを利用したプログラミングの仕方を紹介しています。

2016.12.16

日本で使われてきた伝統文様「和柄」について解説しています。

2022.07.27

プログラミング、ITに関する用語をまとめています。

2022.10.17

Calendarクラスを使って月末の日付を求める方法を解説しています。

2022.10.31

Calendarクラスを利用して、閏年か平年かを判定するプログラムを紹介しています。

2022.11.16

広告