
@[toc]
一、介绍
功能说明
这是一个静态工具方法,用于获取两个日期之间的所有日期(不包含起始日期,包含结束日期?需要确认)。方法接收开始日期和结束日期两个参数,返回这两个日期之间的所有日期的 List 集合。
参数说明
- start:开始日期(不包含在结果中)
- end:结束日期(可能包含在结果中?)
实现原理
- 创建两个 Calendar 实例,分别设置为开始日期和结束日期
- 将开始日期的 Calendar 向前推进 1 天(tempStart.add(Calendar.DAY_OF_YEAR,1))
- 通过 while 循环,只要开始日期在结束日期之前,就将当前日期加入结果集
- 每次循环后将开始日期增加 1 天,继续比较
二、代码
```java
/**
- 获取两个日期之间的所有日期的开始时间集合
返回Date的List
*/
public static List getBetweenDates(Date start, Date end){
List result = new ArrayList<>();
Calendar tempStart = Calendar.getInstance();
tempStart.setTime(start);
tempStart.add(Calendar.DAY_OF_YEAR,1);Calendar tempEnd = Calendar.getInstance();
tempEnd.setTime(end);while (tempStart.before(tempEnd)){
result.add(tempStart.getTime()); tempStart.add(Calendar.DAY_OF_YEAR, 1);}
return result;
}> 结果展示 ```java //获取两个日期之间的所有日期的开始时间集合 Date beginDate = new Date(); beginDate.setTime(1652976000000L); //2022-05-20 00:00:00 Date endDate = new Date(); endDate.setTime(1655654400000L); //2022-06-20 00:00:00 System.out.println(getBetweenDates(beginDate, endDate)); //[Sat May 21 00:00:00 CST 2022, Sun May 22 00:00:00 CST 2022, Mon May 23 00:00:00 CST 2022, Tue May 24 00:00:00 CST 2022, Wed May 25 00:00:00 CST 2022, Thu May 26 00:00:00 CST 2022, Fri May 27 00:00:00 CST 2022, Sat May 28 00:00:00 CST 2022, Sun May 29 00:00:00 CST 2022, Mon May 30 00:00:00 CST 2022, Tue May 31 00:00:00 CST 2022, Wed Jun 01 00:00:00 CST 2022, Thu Jun 02 00:00:00 CST 2022, Fri Jun 03 00:00:00 CST 2022, Sat Jun 04 00:00:00 CST 2022, Sun Jun 05 00:00:00 CST 2022, Mon Jun 06 00:00:00 CST 2022, Tue Jun 07 00:00:00 CST 2022, Wed Jun 08 00:00:00 CST 2022, Thu Jun 09 00:00:00 CST 2022, Fri Jun 10 00:00:00 CST 2022, Sat Jun 11 00:00:00 CST 2022, Sun Jun 12 00:00:00 CST 2022, Mon Jun 13 00:00:00 CST 2022, Tue Jun 14 00:00:00 CST 2022, Wed Jun 15 00:00:00 CST 2022, Thu Jun 16 00:00:00 CST 2022, Fri Jun 17 00:00:00 CST 2022, Sat Jun 18 00:00:00 CST 2022, Sun Jun 19 00:00:00 CST 2022]
重要信息


