java 两个时间之间的 所有时间切片 工具
/**
* @param startTime 开始时间
* @param endTime 结束时间
* @param chronoUnit 时间刻度 note 当你传入的时间 是localTime 时候 ,时间刻度 就不能为Day
* @return
*/
private static <T> T[] intervalTimesType(Temporal startTime, Temporal endTime, ChronoUnit chronoUnit) {
Objects.requireNonNull(startTime);
Objects.requireNonNull(endTime);
Objects.requireNonNull(chronoUnit);
long interval = startTime.until(endTime, chronoUnit);
//这里使用 linkList
List<Temporal> result = new LinkedList<>();
for (int i = 0; i <= interval; i++) {
Temporal temp = startTime.plus(i, chronoUnit);
result.add(temp);
}
return result.toArray((T[]) Array.newInstance(startTime.getClass(), 0));
}
/**
* @param startTime 开始时间
* @param endTime 结束时间
* @param chronoUnit 时间刻度
* @return
*/
public static LocalDateTime[] intervalTimes(LocalDateTime startTime, LocalDateTime endTime, ChronoUnit chronoUnit) {
Objects.requireNonNull(startTime);
Objects.requireNonNull(endTime);
Objects.requireNonNull(chronoUnit);
long interval = startTime.until(endTime, chronoUnit);
//这里使用 linkList
List<LocalDateTime> result = new LinkedList<>();
for (int i = 0; i <= interval; i++) {
LocalDateTime temp = startTime.plus(i, chronoUnit);
result.add(temp);
}
return result.toArray(new LocalDateTime[]{});
}
/**
* @param startTime 开始时间
* @param endTime 结束时间
* @param chronoUnit 时间刻度
* @return
*/
public static LocalDate[] intervalTimes(LocalDate startTime, LocalDate endTime, ChronoUnit chronoUnit) {
Objects.requireNonNull(startTime);
Objects.requireNonNull(endTime);
Objects.requireNonNull(chronoUnit);
long interval = startTime.until(endTime, chronoUnit);
//这里使用 linkList
List<LocalDate> result = new LinkedList<>();
for (int i = 0; i <= interval; i++) {
LocalDate temp = startTime.plus(i, chronoUnit);
result.add(temp);
}
return result.toArray(new LocalDate[]{});
}