「Java8」Calendar.getActualMaximumで指定日付の日付の月末日付を取得する

環境
Java SE1.8
Eclipse IDE 2019

関数
public int getActualMaximum(int field)
このCalendarに時間値を指定して、指定のカレンダ・フィールドが取り得る最大値を返します。
戻り値:このCalendarの時間値に対する、指定されたカレンダ・フィールドの最大値

使用例

package com.arkgame.study;

import java.util.Calendar;

public class DateDemo {

      public static void main(String[] args) {
            String strA = "2022/05/30";
            String strB = "2022-06-28";
            
            System.out.println("月末日付の結果1: " + getLastDay(strA));
            System.out.println("月末日付の結果2: " + getLastDay(strB));

      }

      // 月末日付を取得する関数
      public static int getLastDay(String strDate) {
            // 年
            int yyyy = Integer.parseInt(strDate.substring(0, 4));
            // 月
            int mm = Integer.parseInt(strDate.substring(5, 7));
            // 日
            int day = Integer.parseInt(strDate.substring(8, 10));
            
            Calendar cd = Calendar.getInstance();
            cd.set(yyyy, mm - 1, day);
            
            // 月末日付の取得
            int result = cd.getActualMaximum(Calendar.DATE);
            return result;

      }
}

実行結果
月末日付の結果1: 31
月末日付の結果2: 30

Java

Posted by arkgame