From 27e6bc3df3e39e0d0b147b155a89ad6837ea972b Mon Sep 17 00:00:00 2001
From: cjl <909710561@qq.com>
Date: Mon, 06 Jan 2025 09:19:24 +0800
Subject: [PATCH] Merge branch 'cjl' into dev

---
 screen-common/src/main/java/com/moral/util/DateUtils.java |  229 ++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 176 insertions(+), 53 deletions(-)

diff --git a/screen-common/src/main/java/com/moral/util/DateUtils.java b/screen-common/src/main/java/com/moral/util/DateUtils.java
index a02f9b5..cca005b 100644
--- a/screen-common/src/main/java/com/moral/util/DateUtils.java
+++ b/screen-common/src/main/java/com/moral/util/DateUtils.java
@@ -80,6 +80,10 @@
      * ������������(yyyy-MM-dd HH)
      * */
     public static final String yyyy_MM_dd_HH_EN = "yyyy-MM-dd HH";
+    /*
+     * ������������(MM-dd)
+     * */
+    public static final String MM_dd_EN = "MM-dd";
 
     /*
      * Date���toString������
@@ -287,7 +291,7 @@
     }
 
     /**
-     * ������dateTimeStr���Date������
+     * ������dateTimeStr���Date������ ������������
      *
      * @param dateTimeStr
      * @return
@@ -438,7 +442,7 @@
     }
 
     /**
-     * ������������"yyyy-MM-dd HH:mm:ss"������������������������������������������,time2-time1
+     * ������������"yyyy-MM-dd"������������������������������������������,time2-time1
      *
      * @param time1
      * @param time2
@@ -449,6 +453,20 @@
         Date d2 = getDate(time2);
         return d2.getTime() - d1.getTime();
     }
+
+    /**
+     * ������������"yyyy-MM-dd HH:mm:ss"������������������������������������������,time2-time1
+     *
+     * @param time1
+     * @param time2
+     * @return
+     */
+    public static long compareDateStrDay(String time1, String time2) {
+        Date d1 = getDate(time1,DateUtils.yyyy_MM_dd_HH_mm_ss_EN);
+        Date d2 = getDate(time2,DateUtils.yyyy_MM_dd_HH_mm_ss_EN);
+        return d2.getTime() - d1.getTime();
+    }
+
 
     /**
      * ���������������������������������������
@@ -503,6 +521,14 @@
         }
     }
 
+    public static boolean isTimeBeforE(Date nows, Date date) {
+        long hous = nows.getTime() - date.getTime();
+        if (hous >= 0) {
+            return true;
+        } else {
+            return false;
+        }
+    }
     /**
      * ������������������������������������������������������
      *
@@ -618,6 +644,22 @@
         return dateToDateString(now.getTime(), formatStr);
     }
 
+
+    /**
+     * ������������������day���������������(formatStr)������������
+     *
+     * @param date
+     * @param date,
+     * @param hours
+     * @return
+     */
+    public static Date getDateAddHour(Date date,int hours) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(date);
+        now.add(Calendar.HOUR_OF_DAY, hours);
+        return now.getTime();
+    }
+
     /**
      * @Description: ������������������day���������������
      * @Param: [date, day]
@@ -650,6 +692,8 @@
         }
         return new Date();
     }
+
+
 
     public static String getAfterNDays(Date date, int n, String formateStr) {
         SimpleDateFormat sdf = new SimpleDateFormat(formateStr);
@@ -940,13 +984,95 @@
     }
 
     /*
-    * ������������������������
-    * */
-    public static Date getFirstDayOfCurrYear(){
+     * ������������������������
+     * */
+    public static Date getFirstDayOfCurrYear() {
         Calendar cal = Calendar.getInstance();
-        cal.set(Calendar.DAY_OF_YEAR,1);
+        cal.set(Calendar.DAY_OF_YEAR, 1);
         return getDate(dateToDateString(cal.getTime(), yyyy_MM_dd_EN));
     }
+
+    /*
+     * ������������������������������
+     * */
+    public static Date getFirstDayOfYear(Date date) {
+        final Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        final int last = cal.getActualMinimum(Calendar.DAY_OF_YEAR);
+        cal.set(Calendar.DAY_OF_YEAR, last);
+        cal.set(Calendar.HOUR_OF_DAY, 0);
+        cal.set(Calendar.MINUTE, 0);
+        cal.set(Calendar.SECOND, 0);
+        return cal.getTime();
+    }
+
+    /*
+     * ���������������������������������
+     * */
+    public static Date getLastDayOfYear(Date date) {
+        final Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        final int last = cal.getActualMaximum(Calendar.DAY_OF_YEAR);
+        cal.set(Calendar.DAY_OF_YEAR, last);
+        cal.set(Calendar.HOUR_OF_DAY, 23);
+        cal.set(Calendar.MINUTE, 59);
+        cal.set(Calendar.SECOND, 59);
+        return cal.getTime();
+    }
+
+    /*
+     * ���������������������������������
+     * */
+    public static Date getFirstDayOfMonth(Date date) {
+        final Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        final int last = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        cal.set(Calendar.DAY_OF_MONTH, last);
+        cal.set(Calendar.HOUR_OF_DAY, 0);
+        cal.set(Calendar.MINUTE, 0);
+        cal.set(Calendar.SECOND, 0);
+        return cal.getTime();
+    }
+
+    /*
+     * ������������������������������������
+     * */
+    public static Date getLastDayOfMonth(Date date) {
+        final Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        final int last = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        cal.set(Calendar.DAY_OF_MONTH, last);
+        cal.set(Calendar.HOUR_OF_DAY, 23);
+        cal.set(Calendar.MINUTE, 59);
+        cal.set(Calendar.SECOND, 59);
+        return cal.getTime();
+    }
+
+
+    /*
+     * ���������������������������
+     * */
+    public static boolean isCurrentYear(Date date) {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(new Date());
+        int currentYear = cal.get(Calendar.YEAR);
+        cal.setTime(date);
+        int year = cal.get(Calendar.YEAR);
+        return year == currentYear;
+    }
+
+    /*
+     * ���������������������������
+     * */
+    public static boolean isCurrentMonth(Date date) {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(new Date());
+        int currentYear = cal.get(Calendar.MONTH);
+        cal.setTime(date);
+        int year = cal.get(Calendar.MONTH);
+        return year == currentYear;
+    }
+
 
     /**
      * ������������������������������
@@ -955,6 +1081,14 @@
      */
     public static Date getLastDayOfCurrMonth() {
         Calendar cal = Calendar.getInstance();
+        cal.add(Calendar.MONTH, 1);
+        cal.set(Calendar.DAY_OF_MONTH, 0);
+        return getDate(dateToDateString(cal.getTime(), yyyy_MM_dd_EN));
+    }
+
+    public static Date getLastDayOfCurrMonth(Date time) {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(time);
         cal.add(Calendar.MONTH, 1);
         cal.set(Calendar.DAY_OF_MONTH, 0);
         return getDate(dateToDateString(cal.getTime(), yyyy_MM_dd_EN));
@@ -981,50 +1115,6 @@
     }
 
     /**
-     * ������������������������������
-     *
-     * @param year
-     * @param month
-     * @return
-     */
-    public static String getFirstDayOfMonth(int year, int month) {
-        Calendar cal = Calendar.getInstance();
-        // ������������
-        cal.set(Calendar.YEAR, year);
-        // ������������
-        cal.set(Calendar.MONTH, month - 1);
-        // ������������������������
-        int lastDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
-        // ������������������������������������
-        cal.set(Calendar.DAY_OF_MONTH, lastDay);
-        // ���������������
-        DateFormat df = getDateFormat(yyyy_MM_dd_EN);
-        return df.format(cal.getTime());
-    }
-
-    /**
-     * ������������������������������
-     *
-     * @param year
-     * @param month
-     * @return
-     */
-    public static String getLastDayOfMonth(int year, int month) {
-        Calendar cal = Calendar.getInstance();
-        // ������������
-        cal.set(Calendar.YEAR, year);
-        // ������������
-        cal.set(Calendar.MONTH, month - 1);
-        // ������������������������
-        int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
-        // ������������������������������������
-        cal.set(Calendar.DAY_OF_MONTH, lastDay);
-        // ���������������
-        DateFormat df = getDateFormat(yyyy_MM_dd_EN);
-        return df.format(cal.getTime());
-    }
-
-    /**
      * ������������������
      *
      * @param date
@@ -1040,9 +1130,9 @@
     }
 
     /*
-    * ������������Date
-    * */
-    public static Date getYesterdayDate(){
+     * ������������Date
+     * */
+    public static Date getYesterdayDate() {
         Calendar cal = Calendar.getInstance();
         cal.setTime(new Date());
         cal.set(Calendar.HOUR_OF_DAY, 0);
@@ -1403,6 +1493,14 @@
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(date);
         calendar.add(Calendar.MONTH, months);
+        return calendar.getTime();
+    }
+
+    //������������
+    public static Date addYears(Date date, int years) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.add(Calendar.YEAR, years);
         return calendar.getTime();
     }
 
@@ -1771,4 +1869,29 @@
         String lastYear = getDateAddYear(DateUtils.dateToDateString(getDate(), DateUtils.yyyy), -1);
         return DateUtils.getDate(lastYear, DateUtils.yyyy);
     }
+    //������������������
+    public static Date getFirstDayOfLastYear(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.add(Calendar.YEAR, -1);
+        return calendar.getTime();
+    }
+
+    //���������������������������������������������������
+    public static Map<Date, List<Integer>> getBeforeAndAfterHourDate(Date date) {
+        String s = dateToDateString(date, yyyy_MM_dd_EN);
+        List<String> timeLag = getTimeLag(s);
+        Map<Date, List<Integer>> result = new HashMap<>();
+        for (String s1 : timeLag) {
+            List<Integer> objects = new ArrayList<>();
+            Date current = getDate(s1, yyyy_MM_dd_HH_EN);
+            Date before = addHours(current, -1);
+            Date after = addHours(current, 1);
+            objects.add(getHour(before));
+            objects.add(getHour(current));
+            objects.add(getHour(after));
+            result.put(current, objects);
+        }
+        return result;
+    }
 }

--
Gitblit v1.8.0