使用LocalDate计算给定2个日期的几年几月几日
@ApiOperation(value = "计算租期年限")
@RequestMapping(value = "/calculateRentYear", method = RequestMethod.POST)
public ErrorObject calculateRentYear(@RequestParam Date contractBeginDate, @RequestParam Date contractEndDate) {
ErrorObject error = new ErrorObject();
if ((contractBeginDate != null) && (contractEndDate != null)) {
// 根据起始时间计算租期
/*
* Date转LocalDate
*/
Instant ins_begin = contractBeginDate.toInstant();
Instant ins_end = contractEndDate.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
LocalDate ld_begin = ins_begin.atZone(zoneId).toLocalDate();
LocalDate ld_end = ins_end.atZone(zoneId).toLocalDate();
Period per = Period.between(ld_begin, ld_end);
Map<String, Object> map = new HashMap<>();
map.put("year", per.getYears());
map.put("month", per.getMonths());
map.put("day", per.getDays());
error.setMap(map);
}
return error;
}