ビジネスチャット、Web会議、ファイル共有、スケジュール管理を統合したグループウェア。IP Messenger 互換。

Java 月末日付を取得する

Java 月末日付を取得する Calendar.getActualMaximum()

Javaで指定した日付の月末日付を取得するサンプルプログラムです。
java.util.CalendarクラスのgetActualMaximum(Calendar.DATE)月末日付を取得することができます。

サンプルプログラム

/**
 * 指定した日付文字列(yyyy/MM/dd or yyyy-MM-dd)
 * における月末日付を返します。
 * 
 * @param strDate 対象の日付文字列
 * @return 月末日付
 */
public static int getLastDay(String strDate) {
    if (strDate == null || strDate.length() != 10) {
        throw new IllegalArgumentException(
                "引数の文字列["+ strDate +"]" +
                "は不正です。");
    }
    int yyyy = Integer.parseInt(strDate.substring(0,4));
    int MM = Integer.parseInt(strDate.substring(5,7));
    int dd = Integer.parseInt(strDate.substring(8,10));
    Calendar cal = Calendar.getInstance();
    cal.set(yyyy,MM-1,dd);
    int last = cal.getActualMaximum(Calendar.DATE);
    return last;
}

実行結果

◆実行例
public static void main(String[] args) {
    System.out.println(getLastDay("2007/01/01"));
    System.out.println(getLastDay("2007/02/01"));
    System.out.println(getLastDay("2008/02/01"));
}
◆出力結果
31
28
29
※2008年は閏年のため2月の月末日付は29日となります。