お手軽便利Calendarユーティリティ

SimpleDateFormatを使ったお手軽Calendarユーティリティの例。

/**
 * フォーマットを指定し、文字列からDateオブジェクトへ変換する。
 *
 * @param aDate
 * @param aFormat
 * @return
 * @throws java.text.ParseException
 */
public static Date StringToDate(String aDate, String aFormat) throws ParseException {
    DateFormat dateFormat = new SimpleDateFormat(aFormat);
    return dateFormat.parse(aDate);
}

/**
 * フォーマットを指定し、Dateオブジェクトから文字列へ変換する。
 *
 * @param aDate
 * @param aFormat
 * @return
 */
public static String DateToString(Date aDate, String aFormat) {
    DateFormat dateFormat = new SimpleDateFormat(aFormat);
    return dateFormat.format(aDate);
}

/**
 * 指定したDateオブジェクトの、初日(1日)のDateオブジェクトを返す。
 *
 * @param aDate
 * @return
 */
public static Date getActualFirstDate( Date aDate ){
    Calendar cal = Calendar.getInstance();
    cal.setTime( aDate );

    int firstDay = cal.getActualMinimum( Calendar.DATE );

    int year = cal.get( Calendar.YEAR );
    int month = cal.get( Calendar.MONTH );
    cal.set(year, month, firstDay);

    return cal.getTime();
}

/**
 * 指定したDateオブジェクトの、末日の日付文字列を返す。
 *
 * @param aDate
 * @param aFormat
 * @return
 */
public static String getActualFirstDate( Date aDate, String aFormat ){

    return DateToString( ConvertDateUtil.getActualFirstDate(aDate), aFormat);

}


/**
 * 指定したDateオブジェクトの、末日のDateオブジェクトを返す。
 *
 * @param aDate
 * @return
 */
public static Date getActualLastDate( Date aDate ){
    Calendar cal = Calendar.getInstance();
    cal.setTime( aDate );

    int lastDay = cal.getActualMaximum( Calendar.DATE );

    int year = cal.get( Calendar.YEAR );
    int month = cal.get( Calendar.MONTH );
    cal.set(year, month, lastDay);

    return cal.getTime();
}

/**
 * 指定したDateオブジェクトの、末日の日付文字列を返す。
 *
 * @param aDate
 * @param aFormat
 * @return
 */
public static String getActualLastDate( Date aDate, String aFormat ){

    return DateToString( ConvertDateUtil.getActualLastDate(aDate), aFormat);

}


意外と多用するので、Utilクラスとして一つ作っておくと便利です。
便利クラス系は、Jakarta-commons等で充実しているけれど、中でやっていることの意味を知ることが
重要だと思うので、あまり時間が掛からなければ自分で作るのも手かな、と思います。