从多条数据 取距离现在最近的日期
直接上代码,看注解:
//如果数据是String 转日期用
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//list存入是个7个时间,是字符串类型
List<String> list = new ArrayList<>();
list.add("2020-1-1");
list.add("2020-3-14");
list.add("2019-4-1");
list.add("2019-3-15");
list.add("2020-3-30");
list.add("2020-10-10");
list.add("2019-4-25");
//记录i的下标
Integer dateci = 0;
//计算相差最小值用与if对比
Integer min = null;
for(int i = 0;i< list.size();i++){
//去除list每个值,转date类型|对比
Date date1 = sdf.parse(list.get(i));
//date2是现在的时间 假设现在的时间是2019-3-11
Date date2 = sdf.parse(“2019-3-11”)
//将两个时间传入进行对比 计算后最后结果是相差的天数 也会有负数
int days = (int) ((date1.getTime() - date2.getTime()) / (1000 * 3600 * 24));
//第一次给min赋值
if(i==0){
//转绝对值
min=Math.abs(days);
}
//如果min大于对比后的数据就插入值
if(min > Math.abs(days)){
//取days的绝对值存入
min = Math.abs(days);
//记录下标
dateci = i;
}
}
//这个数据的是循环结束最接近2019-3-11的值
String StrDate = list.get(dateci);
days的结果是相差几天的值,会出现负整形
days结果约接近0相差天数越近
版权声明:本文为qq_40051569原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。