java后台:从多条数据 取距离现在最近的日期

从多条数据 取距离现在最近的日期

直接上代码,看注解:



//如果数据是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版权协议,转载请附上原文出处链接和本声明。