给定开始时间结束时间补全区间日期并计算时间差
给定一个开始时间和结束时间计算出两个时间之间的所有日期,并计算两个时间只见相差多长时间
直接看代码:
public static List<String> getDate(String startTime,String endTime){
List<String> date = new ArrayList<>();
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
//开始时间
Date start = new SimpleDateFormat("yyyy-MM-dd").parse(startTime);
//结束时间
Date end = new SimpleDateFormat("yyyy-MM-dd").parse(endTime);
//仅支持查看90天的数据
long time = (end.getTime() - start.getTime())/(1000 * 60 * 60 * 24) + 1;
Assert.isTrue(time <= 90,"包含开始时间,结束时间,仅支持查看90天数据,当前查询天数:" + time + "天");
Calendar calendar = Calendar.getInstance();
//设置起始时间
calendar.setTime(start);
date.add(startTime);
while (calendar.getTime().before(end)){
//时间加一天
calendar.add(Calendar.DATE,1);
String format1 = new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime());
date.add(format1);
}
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
思路很简单:给定一个初始时间,判断初始时间是否小于结束时间,如果小于就依次天数加1,并存入集合中,直至开始时间等于结束时间结束循环,返回集合就好。
以上内容仅供参考,具体要结合自己业务需要调整。