Last active
December 24, 2015 06:59
-
-
Save kaku87/6760913 to your computer and use it in GitHub Desktop.
月末日付取得
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 月末日付取得<BR> | |
* 引数で渡された日付の末日日付を返す | |
* | |
* @param _dateDate | |
* 月末日付取得対象日付 | |
* @return Date 該当月の月末日付 | |
* @exception SystemException | |
* @throws SystemException | |
*/ | |
public static Date getEndMonth(Date _dateDate) throws SystemException { | |
// ローカル変数宣言// | |
Date dateRet_ = null; // 返却日付格納用 | |
long lngYear_ = 0; // 年格納用 | |
long lngMonth_ = 0; // 月格納用 | |
long lngEndDay_ = 0; // 月末日取得用 | |
String strDate_ = null; // 対象日付の文字列変換用 | |
StringBuffer strEndDate_ = null; // 返却日付の文字列格納用 | |
try { | |
// 1.引数で渡された月の月末日を取得する | |
// 1.1.日付フォーマット変換関数で、対象日付を文字列(yyyy/MM/dd)に変換する | |
strDate_ = toDateFormat(_dateDate, DATE_FORMAT_LONG); | |
// 1.2.対象日付の年月を取得する | |
lngYear_ = Long.parseLong(strDate_.substring(0, 4)); | |
lngMonth_ = Long.parseLong(strDate_.substring(5, 7)); | |
// 1.3.オブジェクトを生成し、引数の日付を変数に設定する | |
calObject = Calendar.getInstance(); | |
calObject.setTime(_dateDate); | |
// 1.4.月末日を取得する | |
lngEndDay_ = calObject.getActualMaximum(Calendar.DATE); | |
// 1.5.うるう年の計算を行う | |
if (lngMonth_ == 2 && lngYear_ % 4 == 0 && lngYear_ % 100 == 0 && lngYear_ % 400 != 0) { | |
// /1)100で割り切れる場合、400でも割り切れる時だけうるう年とする | |
lngEndDay_ = lngEndDay_ - 1; | |
} | |
// 2.返却日付を取得する | |
// 2.1.引数の年月と月末日を組み立てる | |
strEndDate_ = new StringBuffer(); | |
strEndDate_.append(strDate_.substring(0, 8)); | |
strEndDate_.append(String.valueOf(lngEndDay_)); | |
// 2.2.文字列の月初日付を日付型に変換する | |
dateRet_ = toDateType(strEndDate_.toString()); | |
} catch (Exception e) { | |
// 3.例外が発生した場合 | |
// 3.1. NULLを返却する | |
dateRet_ = null; | |
} | |
// 4.月末日付を返す | |
return dateRet_; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment