From c13d7af78a1fd29169c3b4c3ae3497d5706948f5 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期日, 30 十月 2022 22:05:39 +0800
Subject: [PATCH] 写完排班核型逻辑

---
 java110-utils/src/main/java/com/java110/utils/util/DateUtil.java |  143 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 140 insertions(+), 3 deletions(-)

diff --git a/java110-utils/src/main/java/com/java110/utils/util/DateUtil.java b/java110-utils/src/main/java/com/java110/utils/util/DateUtil.java
old mode 100644
new mode 100755
index e431476..29fb6ee
--- a/java110-utils/src/main/java/com/java110/utils/util/DateUtil.java
+++ b/java110-utils/src/main/java/com/java110/utils/util/DateUtil.java
@@ -32,6 +32,7 @@
     public static final String DATE_FORMATE_STRING_J = "yyyyMMddHHmmss.SSS";
     public static final String DATE_FORMATE_STRING_K = "yyyyMMddHHmmssSSS";
     public static final String DATE_FORMATE_STRING_L = "MMdd";
+    public static final String DATE_FORMATE_STRING_M = "yyyyMM";
 
     static {
         formats.put("yyyyMMddHHmmss", new SimpleDateFormat("yyyyMMddHHmmss"));
@@ -47,6 +48,7 @@
         formats.put("yyyyMMddHHmmss.SSS", new SimpleDateFormat("yyyyMMddHHmmss.SSS"));
         formats.put("yyyyMMddHHmmssSSS", new SimpleDateFormat("yyyyMMddHHmmssSSS"));
         formats.put("MMdd", new SimpleDateFormat("MMdd"));
+        formats.put("yyyyMM", new SimpleDateFormat("yyyyMM"));
     }
 
 
@@ -137,6 +139,28 @@
         }
     }
 
+    public static Date getDateFromStringB(String date) {
+        SimpleDateFormat sDateFormat = getDateFormat(DateUtil.DATE_FORMATE_STRING_B);
+        try {
+            synchronized (sDateFormat) {
+                return sDateFormat.parse(date);
+            }
+        } catch (Exception e) {
+            throw new IllegalArgumentException(e);
+        }
+    }
+
+    public static Date getDateFromStringA(String date) {
+        SimpleDateFormat sDateFormat = getDateFormat(DateUtil.DATE_FORMATE_STRING_A);
+        try {
+            synchronized (sDateFormat) {
+                return sDateFormat.parse(date);
+            }
+        } catch (Exception e) {
+            throw new IllegalArgumentException(e);
+        }
+    }
+
     public static Date getDefaultDateFromString(String date)
             throws ParseException {
         return getDateFromString(date, "yyyyMMddHHmmss");
@@ -149,6 +173,7 @@
     public static String getNow(String pattern) {
         return getFormatTimeString(new Date(), pattern);
     }
+
 
     public static String getLastTime() {
         return LAST_TIME;
@@ -350,15 +375,23 @@
     public static Date getNextMonthFirstDate() {
         Calendar calendar = Calendar.getInstance();
         calendar.set(Calendar.DAY_OF_MONTH, 1);
+        calendar.set(Calendar.HOUR_OF_DAY, 0);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
         calendar.add(Calendar.MONTH, 1);
         return calendar.getTime();
     }
 
     public static Date getFirstDate() {
-        Calendar calendar = Calendar.getInstance();
-        calendar.set(Calendar.DAY_OF_MONTH, 1);
-        return calendar.getTime();
+        Calendar curDateCal = Calendar.getInstance();
+        curDateCal.set(Calendar.DAY_OF_MONTH, 1);
+        curDateCal.set(Calendar.HOUR_OF_DAY, 0);
+        curDateCal.set(Calendar.MINUTE, 0);
+        curDateCal.set(Calendar.SECOND, 0);
+        Date curDate = curDateCal.getTime();
+        return curDate;
     }
+
 
     public static String getNextMonthFirstDay(String fmt) {
         String returndate = "";
@@ -405,6 +438,48 @@
         return maxDate;
     }
 
+    public static void main(String[] args) throws ParseException {
+
+//        SimpleDateFormat sf = new SimpleDateFormat(DateUtil.DATE_FORMATE_STRING_A);
+//        Calendar c = Calendar.getInstance();
+//        c.setTime(DateUtil.getDateFromString("2021-12-03",DateUtil.DATE_FORMATE_STRING_A));
+//        c.add(Calendar.DAY_OF_MONTH, 125);
+//        System.out.println("澧炲姞涓�澶╁悗鏃ユ湡:"+sf.format(c.getTime()));
+        System.out.println("2021-12-07".compareTo(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B)));
+    }
+
+    public static String getAddDayString(Date date, String pattern, int days) {
+        SimpleDateFormat sf = new SimpleDateFormat(pattern);
+        Calendar c = Calendar.getInstance();
+        c.setTime(date);
+        c.add(Calendar.DAY_OF_MONTH, days);
+        return sf.format(c.getTime());
+    }
+
+    public static String getAddDayStringB(Date date, int days) {
+        SimpleDateFormat sf = new SimpleDateFormat(DATE_FORMATE_STRING_B);
+        Calendar c = Calendar.getInstance();
+        c.setTime(date);
+        c.add(Calendar.DAY_OF_MONTH, days);
+        return sf.format(c.getTime());
+    }
+
+    public static String getAddDayStringA(Date date, int days) {
+        SimpleDateFormat sf = new SimpleDateFormat(DATE_FORMATE_STRING_A);
+        Calendar c = Calendar.getInstance();
+        c.setTime(date);
+        c.add(Calendar.DAY_OF_MONTH, days);
+        return sf.format(c.getTime());
+    }
+
+
+    public static String getAddMonthStringA(Date date, int month) {
+        SimpleDateFormat sf = new SimpleDateFormat(DATE_FORMATE_STRING_A);
+        Calendar c = Calendar.getInstance();
+        c.setTime(date);
+        c.add(Calendar.MONTH, month);
+        return sf.format(c.getTime());
+    }
 
     /**
      * 鍦ㄧ粰瀹氱殑鏃ユ湡鍔犱笂鎴栧噺鍘绘寚瀹氭湀浠藉悗鐨勬棩鏈�
@@ -421,6 +496,20 @@
         return c.getTime();
     }
 
+    /**
+     * 鍦ㄧ粰瀹氱殑鏃ユ湡鍔犱笂鎴栧噺鍘绘寚瀹氬ぉ鏁板悗鐨勬棩鏈�
+     *
+     * @param sourceDate 鍘熷鏃堕棿
+     * @param day        瑕佽皟鏁寸殑鏈堜唤锛屽悜鍓嶄负璐熸暟锛屽悜鍚庝负姝f暟
+     * @return
+     */
+    public static Date stepDay(Date sourceDate, int day) {
+        Calendar c = Calendar.getInstance();
+        c.setTime(sourceDate);
+        c.add(Calendar.DATE, day);
+        return c.getTime();
+    }
+
     public static String dateTimeToDate(String dateTime) {
         String dateStr = "";
         try {
@@ -432,6 +521,7 @@
 
         return dateStr;
     }
+
 
     public static int getYear() {
         Date date = getCurrentDate();
@@ -470,4 +560,51 @@
             return false;
         }
     }
+
+    //鑾峰彇涓や釜鏃ユ湡涔嬮棿鐨勫ぉ鏁�
+    public static int daysBetween(Date now, Date returnDate) {
+        Calendar cNow = Calendar.getInstance();
+        Calendar cReturnDate = Calendar.getInstance();
+        cNow.setTime(now);
+        cReturnDate.setTime(returnDate);
+        setTimeToMidnight(cNow);
+        setTimeToMidnight(cReturnDate);
+        long todayMs = cNow.getTimeInMillis();
+        long returnMs = cReturnDate.getTimeInMillis();
+        long intervalMs = todayMs - returnMs;
+        return millisecondsToDays(intervalMs);
+    }
+
+    //鑾峰彇涓や釜鏃ユ湡涔嬮棿鐨勬绉掓暟
+    private static void setTimeToMidnight(Calendar calendar) {
+        calendar.set(Calendar.HOUR_OF_DAY, 0);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+    }
+
+    //鑾峰彇涓や釜鏃ユ湡涔嬮棿鐨勫垎閽熸暟
+    private static int millisecondsToDays(long intervalMs) {
+        return (int) (intervalMs / (1000 * 86400));
+    }
+
+    /**
+     * 銆�銆� *瀛楃涓茬殑鏃ユ湡鏍煎紡鐨勮绠�
+     *
+     */
+    public static int daysBetween(String smdate, String bdate) {
+        long between_days = 0;
+        try {
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            Calendar cal = Calendar.getInstance();
+            cal.setTime(sdf.parse(smdate));
+            long time1 = cal.getTimeInMillis();
+            cal.setTime(sdf.parse(bdate));
+            long time2 = cal.getTimeInMillis();
+            between_days = (time2 - time1) / (1000 * 3600 * 24);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return Integer.parseInt(String.valueOf(between_days));
+    }
 }

--
Gitblit v1.8.0