//计算两个日期相差年数
public static int yearDateDiff(Date startDate,Date endDate){
Calendar calBegin = Calendar.getInstance(); //获取日历实例
Calendar calEnd = Calendar.getInstance();
calBegin.setTime(startDate);
calEnd.setTime(endDate);
return calEnd.get(Calendar.YEAR) - calBegin.get(Calendar.YEAR);
}
Java 功能代码:
String startYear = entity.getString("startYear");
String endYear = entity.getString("endYear");
if(StringUtils.isEmpty(startYear)){
return Result.error("开始年份不能为空");
}
if(StringUtils.isEmpty(endYear)){
LocalDateTime localDateTime = LocalDateTime.now();
endYear = localDateTime.format(DateTimeFormatter.ofPattern("yyyy"));
}
// 日期大小比较
SimpleDateFormat format = new SimpleDateFormat("yyyy");
Date startDate = null;
Date endDate = null;
try {
startDate = format.parse(startYear);
endDate = format.parse(endYear);
} catch (ParseException e) {
// TODO Auto-generated catch block
logger.error(e.getMessage());
return Result.error("年份转换异常");
}
// 判断年份大小
if(!endDate.after(startDate)){
return Result.error("结束年份必须大于或等于开始年份");
}
List<String> years = this.getYear(startYear, endYear);
/**
* 补全年份
* @param startYear
* @param endYear
* @return
*/
public List<String> getYear(String startYear, String endYear){
List<String> year = new ArrayList();
SimpleDateFormat format = new SimpleDateFormat("yyyy");
try{
Date dBegin = format.parse(startYear);
Date dEnd = format.parse(endYear);
year.add(format.format(dBegin));
Calendar calBegin = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calBegin.setTime(dBegin);
Calendar calEnd = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calEnd.setTime(dEnd);
// 测试此日期是否在指定日期之后
while (dEnd.after(calBegin.getTime())) {
// 根据日历的规则,为给定的日历字段添加或减去指定的时间量
calBegin.add(Calendar.YEAR, 1);
year.add(format.format(calBegin.getTime()));
}
}catch(Exception e){
return year;
}
return year;
}