java 两个时间之间的 所有时间切片 工具

时间:2025-02-17 22:19:02
/** * @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[]{}); }