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