Javaでうるう年を判定する方法を現役エンジニアが解説【初心者向け】
初心者向けにJavaでうるう年を判定する方法について解説しています。最初にうるう年の条件を書き出し、そこからif文による判定プログラムを作成していきます。条件の組み合わせ方、分岐を使った判定の基礎を勉強しましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Javaでうるう年を判定する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
Javaについてそもそもよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプ、Java講座の内容をもとに作成しています。
今回は、Javaに関する内容だね!
どういう内容でしょうか?
うるう年を判定する方法について詳しく説明していくね!
お願いします!
うるう年の条件
うるう年は、単純に「4年に1度の間隔で1年が365日ではなく366日になる年」というわけではなく、下記のような決まりがあります。
- 西暦年が4で割り切れる年はうるう年
- ただし、西暦年が100で割り切れる年は平年(うるう年ではない)
- ただし、西暦年が400で割り切れる年はうるう年
うるう年を判定する方法
対象の西暦年が、上記の条件に当てはまるかどうかを判定します。
西暦年が4で割り切れる年はうるう年を表すプログラム
year % 400 == 0
ただし、西暦年が100で割り切れる年は平年(うるう年ではない)を表すプログラム
year % 100 != 0
ただし、西暦年が400で割り切れる年はうるう年を表すプログラム
year % 4 == 0
これらの条件を組み合わせることにより、うるう年の判定を行うことができます。
また、うるう年の2月には29日が存在しますので、対象の西暦年の2月の最終日が29日であれば、うるう年と判定することもできます。
実際に書いてみよう
まずは、うるう年の条件にそってプログラムを書いてみます。
public class LeapYear1 { public static void main(String[] args) { int year = 2020; boolean check = false; if (year % 4 == 0) { if ((year % 100) == 0) { if ((year % 400) == 0) { check = true; // うるう年 } } else { check = true; // うるう年 } } System.out.println(check ? "うるう年です。" : "うるう年ではありません。"); } }
実行結果
うるう年です。
2月の最終日が29日であるかどうかを判定するプログラムも確認しておきます。
import java.util.Calendar; public class LeapYear2 { public static void main(String[] args) { int year = 2019; boolean check = false; Calendar calendar = Calendar.getInstance(); calendar.set(year, Calendar.FEBRUARY, 1); //2月の日付を設定 int numberOfdays = calendar.getActualMaximum(Calendar.DATE); //2月の最終日を取得 if (numberOfdays == 29) { check = true; } System.out.println(check ? "うるう年です。" : "うるう年ではありません。"); } }
実行結果
うるう年です。
監修してくれたメンター
松井紀明
メーカー系で17年エンジニアとして勤務後、現在はフリーのエンジニアとしてリモートワークで働いています。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でも、JavaやServletの技術を使ってWebアプリケーション開発を習得できる、オンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。