jdk1.8有了新的日期api、以及流的处理,这让可以精简我们的代码,使代码具有更好的阅读性。
用到的技术:
1.新的日期api LocalDate
2.无限流的创建、截断流、流数据收集器
/**
* 获取一段时间内的所有日期.
*
* @param start
* 开始日期.
* @param end
* 结束日期.
* @return 所有的日期集合.
*/
public static List<LocalDate> getAllDaysWithRange(LocalDate start, LocalDate end) {
if (start.isAfter(end)) {
throw new TimeException("开始时间不能晚于结束时间");
}
return Stream.iterate(start, localDate -> localDate.plusDays(1)).limit(ChronoUnit.DAYS.between(start, end) + 1)
.collect(Collectors.toList());
}