/**
* 获取两个日期之间的所有日期
*
* @param startTime 开始日期
* @param endTime 结束日期
* @return
*/
public static Map getDayBetween(String startTime, String endTime) {
// 返回的日期集合
Map dayMap = new LinkedHashMap();
// 日期格式化
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
// 开始日期
Date start = dateFormat.parse(startTime);
// 结束日期
Date end = dateFormat.parse(endTime);
Calendar tempStart = Calendar.getInstance();
tempStart.setTime(start);
Calendar tempEnd = Calendar.getInstance();
tempEnd.setTime(end);
// 日期加1(包含结束)
tempEnd.add(Calendar.DATE, +1);
while (tempStart.before(tempEnd)) {
dayMap.put(dateFormat.format(tempStart.getTime()), "");
tempStart.add(Calendar.DAY_OF_YEAR, 1);
}
} catch (ParseException e) {
e.printStackTrace();
}
return dayMap;
}
/**
* 获取两个日期之间的所有月份
*
* @param startTime 开始日期
* @param endTime 结束日期
* @return
*/
public static Map getMonthBetween(String startTime, String endTime) {
// 返回的日期集合
Map dayMap = new LinkedHashMap();
// 日期格式化
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM");
try {
// 开始日期
Date start = dateFormat.parse(startTime);
// 结束日期
Date end = dateFormat.parse(endTime);
Calendar tempStart = Calendar.getInstance();
tempStart.setTime(start);
Calendar tempEnd = Calendar.getInstance();
tempEnd.setTime(end);
// 日期加1(包含结束)
tempEnd.add(Calendar.MONTH, +1);
while (tempStart.before(tempEnd)) {
dayMap.put(dateFormat.format(tempStart.getTime()), "");
tempStart.add(Calendar.MONTH, 1);
}
} catch (ParseException e) {
e.printStackTrace();
}
return dayMap;
}
public static void main(String[] args) {
Map dayBetween = getDayBetween("2021-01-01", "2021-01-10");
for (Object key : dayBetween.keySet()) {
System.out.println("day= " + key);
}
}
输出结果:
day= 2021-01-01
day= 2021-01-02
day= 2021-01-03
day= 2021-01-04
day= 2021-01-05
day= 2021-01-06
day= 2021-01-07
day= 2021-01-08
day= 2021-01-09
day= 2021-01-10