From 0852acae13603be95eaaa0b501f3441508ff3fe5 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期一, 14 四月 2025 09:52:12 +0800 Subject: [PATCH] 大屏统计修改 --- medicalWaste-common/src/main/java/com/sinata/common/utils/DateUtils.java | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 50 insertions(+), 0 deletions(-) diff --git a/medicalWaste-common/src/main/java/com/sinata/common/utils/DateUtils.java b/medicalWaste-common/src/main/java/com/sinata/common/utils/DateUtils.java index 92a68db..81f2f89 100644 --- a/medicalWaste-common/src/main/java/com/sinata/common/utils/DateUtils.java +++ b/medicalWaste-common/src/main/java/com/sinata/common/utils/DateUtils.java @@ -415,4 +415,54 @@ return Date.from(firstDayAtMidnight.atZone(ZoneId.systemDefault()).toInstant()); } + /** + * 获取最近N天所有日期字符串列表 + * + * @param format 日期格式,例如 "yyyy-MM-dd" + * @param days 天数 + * @return 最近N天所有日期的字符串列表 + */ + public static List<String> getAllDatesOfLastNDays(String format, int days) { + // 当前日期 + LocalDate now = LocalDate.now(); + + // 获取N天前的日期 + LocalDate startDate = now.minusDays(days - 1); + + // 日期格式化器 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format); + + // 结果列表 + List<String> dates = new ArrayList<>(); + + // 从N天前到今天循环 + LocalDate currentDate = startDate; + while (!currentDate.isAfter(now)) { + dates.add(currentDate.format(formatter)); // 格式化为字符串并添加到列表 + currentDate = currentDate.plusDays(1); // 日期加一天 + } + + return dates; + } + + /** + * 获取N天前的0点时间,并返回 Date 类型 + * + * @param days 天数 + * @return N天前的0点时间(Date 类型) + */ + public static Date getFirstDayOfLastNDaysAtMidnight(int days) { + // 获取当前日期 + LocalDate now = LocalDate.now(); + + // 获取N天前的日期 + LocalDate nDaysAgo = now.minusDays(days - 1); + + // 将该天与0点时间合并 + LocalDateTime startDayAtMidnight = nDaysAgo.atTime(LocalTime.MIDNIGHT); + + // 将 LocalDateTime 转换为 Date + return Date.from(startDayAtMidnight.atZone(ZoneId.systemDefault()).toInstant()); + } + } -- Gitblit v1.7.1