1、获取当前日期
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
Date date=new Date(System.currentTimeMillis());
2、利用list存储需要比较的日期
List<String> days=recordService.getDaysDistinct();
3、建立for循环,将存储的string类型的日期转为Date类型,二者相减得到差值,同时利用另一个数组存储差值
List<Long> result=new ArrayList<>();
for(int i=0;i< days.size();i++){
Date date1=simpleDateFormat.parse(days.get(i));
result.add(date.getTime()-date1.getTime());//毫秒的差值
}
4、得到最小的差值的下标,进而得到距离最近的日期的值
//比较哪个是最小的差值
long minCount = result.get(0);//存储下标
int min = 0;
String day;//获取到的日期结果
for(int i=0;i<result.size();i++){
if(result.get(i)<minCount){
System.out.println("result:"+result);
minCount=result.get(i);
min=i;
}
}
5、得到结果
//得到最近日期的值
day = days.get(min);