Java 月の最終日を文字列型で取得する方法 - Calendarクラス

Javaで月の最終日を文字列型で取得する方法です。

月の最終日というのは、毎月変わりますよね。そう、30日で終わったり、31日で終わったりします。2月にいたっては、28日だったり、うるう年の場合 29日だったりします。

実務の中では、この最終日を意識して業務をすることが多々ありますので、取得する方法をしっかり覚えておきましょう。

ここでは Javaで月の最終日を文字列型で取得する方法 を、サンプルソースを見ながら解説していきます。


サンプルソース

Javaで月の最終日を文字列型で取得するサンプルソースです。

/**
 * 今月の最終日を文字列で返します。
 *
 * @return 日文字列(30,31など)
 */
public static String getLastDayOfThisMonth() {
    Calendar calendar = GregorianCalendar.getInstance();
    calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1, 0);
    int lastDayOfThisMonth = calendar.get(Calendar.DATE);
    return String.valueOf(lastDayOfThisMonth);
}

まず、日時の操作をおこなうときは、GregorianCalendar クラスを使います。

この GregorianCalendar クラスは、Calendar クラスを継承していますので、用意されている settergetter を利用することで、年月時分秒を設定・取得が可能です。あとは、取得できた日にちを文字列型にキャストしてあげればおしまいです。

calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1, 0);

この月加算している部分を変更してあげれば、先月や翌月の最終日の取得も可能です。

サンプルは以下のようになります。

/**
 * 先月の最終日を文字列で返します。
 *
 * @return 日文字列(30,31など)
 */
public static String getLastDayOfBeforeMonth() {
    Calendar calendar = GregorianCalendar.getInstance();
    calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), 0);
    int lastDayOfBeforeMonth = calendar.get(Calendar.DATE);
    return  String.valueOf(lastDayOfBeforeMonth);
}
/**
 * 来月の最終日を文字列で返します。
 *
 * @return 日文字列(30,31など)
 */
public static String getLastDayOfAfterMonth() {
    Calendar calendar = GregorianCalendar.getInstance();
    calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 2, 0);
    int lastDayOfAfterMonth = calendar.get(Calendar.DATE);
    return String.valueOf(lastDayOfAfterMonth);
}

テスト

ここでは、CalendarUtils というユーティリティクラスに static メソッドとして記述しています。こうすることで、いちいち同じことを記述する必要がなく、ソースを美しく保つことができます。

それでは、早速テストしてみましょう。

System.out.println(CalendarUtils.getLastDayOfThisMonth());      // 今月
System.out.println(CalendarUtils.getLastDayOfBeforeMonth());    // 先月
System.out.println(CalendarUtils.getLastDayOfAfterMonth());     // 来月

テスト結果

31  // 今月
31  // 先月
28  // 来月

今日は、1月30日でしたので、今月は 31 日まで。先月 12 月も 31日まで。そして、来月 2 月は、28 日までという結果になりました。

これらの日付操作は、実務では本当によく利用しますので、十分に理解しておくことをおすすめします。

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。