From 3b0516a2959e25576e4f3fda697a3b025d06c8c9 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期二, 24 六月 2025 14:09:07 +0800
Subject: [PATCH] 每日录像可用指标添加日志,修改大屏为查看当前月平均

---
 ycl-server/src/main/java/com/ycl/utils/DateUtils.java |   85 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 85 insertions(+), 0 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/utils/DateUtils.java b/ycl-server/src/main/java/com/ycl/utils/DateUtils.java
index 4ab7585..faa53de 100644
--- a/ycl-server/src/main/java/com/ycl/utils/DateUtils.java
+++ b/ycl-server/src/main/java/com/ycl/utils/DateUtils.java
@@ -1,6 +1,7 @@
 package com.ycl.utils;
 
 import org.apache.commons.lang3.time.DateFormatUtils;
+import org.glassfish.jaxb.core.v2.TODO;
 
 import javax.annotation.Nullable;
 import java.lang.management.ManagementFactory;
@@ -8,6 +9,7 @@
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.*;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.Objects;
 
@@ -145,6 +147,14 @@
     }
 
     /**
+     * 璁$畻鐩稿樊灏忔椂
+     */
+    public static int differentHoursByMillisecond(Date date1, Date date2)
+    {
+        return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600)));
+    }
+
+    /**
      * 璁$畻鏃堕棿宸�
      *
      * @param endDate 鏈�鍚庢椂闂�
@@ -219,4 +229,79 @@
         LocalDateTime of = LocalDateTime.of(localDateTime.getYear(), localDateTime.getMonth(), localDateTime.getDayOfMonth(), 23, 59, 59);
         return Timestamp.valueOf(of);
     }
+
+    /**
+     * 鑾峰彇鏌愭湀寮�濮嬫棩鏈�
+     */
+    public static String getMouthStart(@Nullable Date date) {
+        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
+        Calendar c = Calendar.getInstance();
+        if (date != null) {
+            c.setTime(date); // 濡傛灉date涓嶄负null锛屽垯璁剧疆Calendar鐨勬棩鏈熶负date
+        }
+        c.set(Calendar.DAY_OF_MONTH,1);
+        return df.format(c.getTime());
+    }
+
+    /**
+     * 鑾峰彇鏌愭湀缁撴潫鏃ユ湡
+     */
+    public static String getMouthEnd(@Nullable Date date) {
+        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
+        Calendar c = Calendar.getInstance();
+        if (date != null) {
+            c.setTime(date); // 濡傛灉date涓嶄负null锛屽垯璁剧疆Calendar鐨勬棩鏈熶负date
+        }
+        c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
+        return df.format(c.getTime());
+    }
+    /**
+     * 鑾峰彇鎸囧畾Calendar鐨勫搴﹀紑濮嬫棩鏈�
+      * @param calendar 鏃ュ巻
+     * @return 瀛e害绗竴澶�
+     */
+    public static Calendar getQuarterStart(Calendar calendar) {
+        Calendar quarterStart = (Calendar) calendar.clone();
+        // 璁剧疆涓哄綋鍓嶅搴︾殑绗竴涓湀鐨勭涓�澶�
+        quarterStart.set(Calendar.DAY_OF_MONTH, 1);
+        int month = quarterStart.get(Calendar.MONTH);
+        quarterStart.set(Calendar.MONTH, (month / 3) * 3);
+        return quarterStart;
+    }
+
+    /**
+     * 鑾峰彇鎸囧畾Calendar鐨勫搴︾粨鏉熸棩鏈�
+     * @param calendar 鏃ュ巻
+     * @return 瀛e害鏈�鍚庝竴澶�
+     */
+    public static Calendar getQuarterEnd(Calendar calendar) {
+        Calendar quarterEnd = getQuarterStart(calendar);
+        // 灏嗘湀浠借缃负涓嬩竴涓搴︾殑绗竴涓湀
+        quarterEnd.add(Calendar.MONTH, 3);
+        // 璁剧疆涓洪偅涓湀鐨勬渶鍚庝竴澶�
+        quarterEnd.add(Calendar.DAY_OF_MONTH, -1);
+        return quarterEnd;
+    }
+
+
+    public static Date getDay(int year,int month,int day) {
+        // 鑾峰彇Calendar瀹炰緥锛岄粯璁や娇鐢ㄥ綋鍓嶆椂鍖哄拰璇█鐜
+        Calendar calendar = Calendar.getInstance();
+        // 娓呴櫎Calendar涓殑鎵�鏈夊瓧娈靛�硷紝浠ラ伩鍏嶅畠浠褰撳墠鏃ユ湡鏃堕棿鏈夊奖鍝�
+        calendar.clear();
+        // 璁剧疆骞翠唤銆佹湀浠斤紙娉ㄦ剰锛氭湀浠芥槸浠�0寮�濮嬬殑锛屾墍浠�8鏈堟槸7锛夈�佹棩鏈�
+        calendar.set(Calendar.YEAR, year);
+        calendar.set(Calendar.MONTH, month);
+        calendar.set(Calendar.DAY_OF_MONTH, day);
+        // Calendar.getTime()鏂规硶杩斿洖涓�涓〃绀烘Calendar鏃堕棿鍊肩殑Date瀵硅薄
+        Date date = calendar.getTime();
+        return date;
+    }
+    public static Integer getDayOfMonth(Date date) {
+        // 鍒涘缓涓�涓狢alendar瀵硅薄骞惰缃负褰撳墠鏃ユ湡鍜屾椂闂�
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        // 鑾峰彇褰撳墠鏃ユ湡鏄綋鏈堜腑鐨勭鍑犲ぉ
+        return calendar.get(Calendar.DAY_OF_MONTH);
+    }
 }

--
Gitblit v1.8.0