こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、12年目エンジニアです。
この記事では、 Javaでうるう年を判定するを
- うるう年とは
- サンプルプログラム
- 実行結果
- プログラム解説
と、丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
IntelliJ IDEAのエディション | Community(無料版) |
IntelliJ IDEAのバージョン | 2021.3.2 |
プロジェクト | Javaプロジェクト |
SDK | Oracle OpenJDK version17.0.2 |
Javaを動かすためにIntelliJ IDEAを使っています。
IntelliJ IDEAのインストールは、下の記事をご参考ください。
解説で使うJavaプログラムは、Sampleプロジェクトのsampleパッケージ内にある、とします。
うるう年(閏年)とは
うるう年とは、2月29日がある年のことです。
うるう年のルールは
- 西暦年数が4で割り切れる場合はうるう年である
- 西暦年数が100で割り切れる場合はうるう年でない
- 西暦年数が400で割り切れる場合はうるう年である
です。
たとえば
- 2000年
- 2004年
- 2020年
はうるう年で
- 2001年
- 2021年
- 2100年
はうるう年ではありません。
うるう年(閏年)を判定するサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
package sample; public class Sample { public static void main(String[] args) { System.out.println("■うるう年を判定するサンプルプログラム"); int[] years = {1997, 2000, 2012, 2020, 2023, 2100}; for (int i = 0; i < years.length; i++) { if ((years[i] % 4 == 0 && years[i] % 100 != 0) || years[i] % 400 == 0) { System.out.println(years[i] + "年はうるう年です"); } else { System.out.println(years[i] + "年はうるう年ではありません"); } } } } |
実行結果
Javaプログラムを実行します。
実行のやり方は
- プログラムを右クリックして実行
- 実行タブから実行
- ガターから実行
の3種類あるので、いずれかで実行します。
詳しい解説は以下の記事をご参考ください。
1 2 3 4 5 6 7 |
■うるう年を判定するサンプルプログラム 1997年はうるう年ではありません 2000年はうるう年です 2012年はうるう年です 2020年はうるう年です 2023年はうるう年ではありません 2100年はうるう年ではありません |
うるう年の判定ができていることが確認できました。
プログラム解説
うるう年の判定をして結果を表示している
1 2 3 4 5 |
if ((years[i] % 4 == 0 && years[i] % 100 != 0) || years[i] % 400 == 0) { System.out.println(years[i] + "年はうるう年です"); } else { System.out.println(years[i] + "年はうるう年ではありません"); } |
の箇所を解説します。
うるう年のルールは
- 西暦年数が4で割り切れる場合はうるう年である
- 西暦年数が100で割り切れる場合はうるう年でない
- 西暦年数が400で割り切れる場合はうるう年である
でした。
これらの条件を
1 |
if ((years[i] % 4 == 0 && years[i] % 100 != 0) || years[i] % 400 == 0) { |
で表しています。
if文の条件式で使っている%算術演算子とは、演算子の左辺を右辺で割った余りを返す演算子です。
この演算子を使って、割り切れるかどうかを判定しています。
if文の条件は大きく分けて
と2つにわけることができます。
1 |
years[i] % 4 == 0 && years[i] % 100 != 0 |
の箇所で
- 西暦年数が4で割り切れる場合はうるう年である
- 西暦年数が100で割り切れる場合はうるう年でない
を意味しています。
4でも100でも割り切れると、うるう年ではありません。
なので上記2つのルールはどちらも満たす必要があるため、「&&」でつなげて1つの判定条件としています。
1 |
years[i] % 400 == 0 |
の箇所で
- 西暦年数が400で割り切れる場合はうるう年である
を意味しています。
400で割り切れるということは同時に4でも割り切れます。
なのでこのルールだけ単独で判定しています。
この判定条件と1つ目の判定条件のどちらかを満たせばうるう年だと判定できるため「||」でつなげています。
%算術演算子については、詳しくはこちらの記事をご参考ください。
まとめ:うるう年(閏年)を判定してみよう!
以上がJavaでうるう年を判定するサンプルプログラムでした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント