基本的には、日付を設定してリストに保存します。入力日付を設定してリストに追加します
public List<RecordList> createRecord(BigDecimal yr){
for (int index = 0; index <= 14; index++) {
RecordList value = new RecordList();
if(index == 0){
value.setStartDt(toDate(("01-04-" + yr)));
value.setEndDt(toDate(("30-04-" + yr)));
}
if(index == 1){
value.setStartDt(toDate(("01-05-" + yr.add(new BigDecimal(1)))));
value.setEndDt(toDate(("31-05-" + yr.add(new BigDecimal(1)))));
}
createRecord.add(newRecordValue);
return createRecord;
}
private Date toDate(String date) {
Date newDate = null;
try {
newDate = new SimpleDateFormat("dd-MM-YYYY").parse(date);
}
catch (ParseException e) {
e.printStackTrace();
}
return newDate;
}
私は2017年に年を設定するとき、私が設定したもので、出力のdoesntが一致し、されて何が起こるか:
"StartDate": "30-12-2017",
"EndDate": "30-12-2017"
と、それはそれの代わりに、来年に増分をdoesntの下の私のコードからデクリメント:
"StartDate": "30-12-2016",
"EndDate": "30-12-2016"
これは、JSR-310(Java 8に組み込まれ、Java 6および7にもバックポートされています)の 'LocalDate'を使って行う方がはるかに簡単で自然です。最近では、 'SimpleDateFormat'を使うべきではありません。特にこのようなタスクのためではありません。 –