Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaで特定の年・月の日数を取得する方法!GregorianCalendarのgetActualMaximum()メソッド解説

GregorianCalendarクラスとは

GregorianCalendarは、Calendarクラスの具象サブクラスであり、世界で最も広く使用されている標準的な暦体系(グレゴリオ暦)を提供します。Javaでは、このGregorianCalendarを使うことで、グレゴリオ暦だけでなくユリウス暦も扱うことができます。

特定の年におけるある月の日数を調べたい場合は、GregorianCalendarクラスが提供するgetActualMaximum()メソッドを利用します。このメソッドは、指定されたカレンダーフィールドが取り得る最大値を返します。引数には、Calendarクラスの任意のフィールドを指定することが可能です。

getActualMaximum()メソッドの構文

public int getActualMaximum(int field)

サンプルコード

以下の例では、2000年から2017年までの各年について「2月」の日数を取得し、コンソールに出力しています。
2月は閏年かどうかによって日数が変わるため、この処理は閏年の判定にもそのまま応用できます。

import java.util.*;

public class NoOfDaysInAMonthOfAYearTest {
    public static void main(String[] args) {
        for (int i = 2000; i < 2018; i++) {
            Calendar calendar = new GregorianCalendar(i, Calendar.FEBRUARY, 1);
            int numberOfDays = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
            System.out.println("February " + i + ": " + numberOfDays + " days");
        }
    }
}

実行結果

February 2000: 29 days
February 2001: 28 days
February 2002: 28 days
February 2003: 28 days
February 2004: 29 days
February 2005: 28 days
February 2006: 28 days
February 2007: 28 days
February 2008: 29 days
February 2009: 28 days
February 2010: 28 days
February 2011: 28 days
February 2012: 29 days
February 2013: 28 days
February 2014: 28 days
February 2015: 28 days
February 2016: 29 days
February 2017: 28 days

コードのポイント解説

new GregorianCalendar(i, Calendar.FEBRUARY, 1) のように、対象となる年と月(ここでは2月)、日を1日に指定してインスタンスを生成します。

続いて、calendar.getActualMaximum(Calendar.DAY_OF_MONTH) を呼び出すことで、その年・月に実際に存在する最大の日数(つまりその月の最終日)をint型で取得できます。

実行結果を見ると、2000年・2004年・2008年・2012年・2016年のように4年ごとに「29 days」と表示されていることがわかります。これらは閏年に該当する年です。なお、2000年は「100で割り切れるが400でも割り切れる年」であるため、例外として閏年になる点にも注目してください。このようにgetActualMaximum()を使えば、複雑な閏年の計算ルールを意識することなく、正確に月の日数を取得できます。

  1. Excelで数値の平方根を求める3つの方法【SQRT・POWER・指数演算子】

    Microsoft Excelは、複雑な計算を効率的に行える強力なツールです。Excelを日常的に使っている方なら、数学的な計算処理に触れる機会も多いのではないでしょうか。しかし、意外とシンプルな計算でつまずくこともあります。その代表例が「平方根の計算」です。この記事では、Excelで数値の平方根を求める3つの方法をわかりやすく解説します。 Excelで平方根を計算する基本 SQRT関数、POWER関数、そして指数演算子(^)を使えば、Excelで簡単に平方根を計算できます。それぞれの特徴と使い方を順番に見ていきましょう。 1. SQRT関数を使って平方根を求める SQRT関数は、Excelに

  2. iPhone・iPadのシリアル番号を確認する6つの方法|端末が起動しないときもOK

    iPhone、iPad、iPod touchのシリアル番号を確認する必要がある場面は意外と多くあります。Appleサポートに技術的な問題を相談するとき、保証状況を確認したいとき、あるいは自分が使っているiPhoneの機種を特定したいときなど、その理由はさまざまです。 理由が何であれ安心してください。この記事では、シリアル番号を調べるための6つの簡単な方法を紹介します。デバイスの電源が入らない、外箱が見つからないといったケースでも役立つ方法を含んでいます。なお、一部のサポート窓口では、シリアル番号の代わりにIMEIでの対応を受け付けてもらえることもあります。 1. デバイスの背面を確認する 最も