Java 指定した日と指定した開始年度月からの開始年度、終了年度を取得する処理



会社によって開始年度月が9月とか10月とかだったりするみたい(´・ω・`)
嘘だろおい。。。


まぁ、前の記事のプログラムを応用して。



/**
 * 開始年度日付取得処理。
* 指定された基準日から、開始年度日付を返却する。
* @param kijyunDate 基準日 * @param nendoStartMonth 年度開始月(1月は1) * @return 開始年度日付 */ public static Date getStartNendoDate(final Date kijyunDate, final int nendoStartMonth) { Calendar cal = Calendar.getInstance(); cal.setTime(kijyunDate); if (cal.get(Calendar.MONTH) < nendoStartMonth - 1) { cal.add(Calendar.YEAR, -1); } cal.set(Calendar.MONTH, nendoStartMonth - 1); cal.set(Calendar.DATE, 1); return DateUtils.truncate(cal.getTime(), Calendar.DAY_OF_MONTH); } /** * 終了年度日付取得処理。
* 指定された基準日から、終了年度日付を返却する。
* @param kijyunDate 基準日 * @return 終了年度日付 */ public static Date getEndNendoDate(final Date kijyunDate, final int nendoStartMonth) { Calendar cal = Calendar.getInstance(); cal.setTime(kijyunDate); if (cal.get(Calendar.MONTH) >= nendoStartMonth - 1) { cal.add(Calendar.YEAR, 1); } cal.set(Calendar.MONTH, nendoStartMonth - 1); cal.set(Calendar.DATE, 1); cal.add(Calendar.DATE, -1); return DateUtils.truncate(cal.getTime(), Calendar.DAY_OF_MONTH); }



解説。
特にないが、1番のみそとしては終了年度のcal.add(Calendar.DATE, -1);かな
31日まである月とない月があるので、直接値を指定するのではなく
1日を設定し、1日を引くと先月の月末が取れます(´・ω・`)


それを応用したんだよ(´・ω・`)

0 件のコメント:

コメントを投稿