日付文字列(YYYYMMDD)から年度を取得するサンプルです。
サンプルメソッド
例)日付文字列(YYYYMMDD)から年度を取得する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
import java.text.SimpleDateFormat; import java.util.Calendar; /** * 日付文字列(YYYYMMDD)から年度を取得する * (存在しない日付の場合は0を返却) * @param yyyymmdd 日付文字列(YYYYMMDD形式) * @return 年度 */ public static int getNendo(String yyyymmdd){ //戻り値 int ret = 0; try{ //日付文字列をCalendar型に変換する SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); sdf.setLenient(false); Calendar cal = Calendar.getInstance(); cal.setTime(sdf.parse(yyyymmdd)); //年度判定 if(cal.get(Calendar.MONTH) < 3){ ret = cal.get(Calendar.YEAR) -1; }else{ ret = cal.get(Calendar.YEAR); } }catch(Exception ex){ //例外発生時はデフォルトの戻り値を使用する } return ret; } |
- (実行例)
- 20180331 ⇒ 2017 20180401 ⇒ 2018 20180332 ⇒ 0 null ⇒ 0
メモ
- 年度は、4月1日~3月31日が区切りです。
- 正しい日付文字列でない値が渡された場合は、0が返ります。