pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java
@@ -26,6 +26,46 @@
   public static Date getDate(Long time){
      return new Date(time) ;
   }
   public static Date startOfDay(int year, int month, int day){
      Date dt = null ;
      try{
         dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(year + "-" + (month < 10 ? ("0" + month) : month) + "-" + (day < 10 ? ("0" + day) : day) + " 00:00:00");
      }catch (Exception e){
         e.printStackTrace();
      }
      return dt  ;
   }
   public static Date endOfDay(int year, int month, int day){
      Date dt = null ;
      try{
         dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(year + "-" + (month < 10 ? ("0" + month) : month) + "-" + (day < 10 ? ("0" + day) : day) + " 23:59:59");
      }catch (Exception e){
         e.printStackTrace();
      }
      return dt  ;
   }
   public static int endDayOfMonth(int year, int month){
      if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){
         return 31 ;
      }else{
         if(month == 2){
            if(DateTime.isLeapYear(year)){
               return 29 ;
            }else{
               return 28 ;
            }
         }else{
            return 30 ;
         }
      }
   }
   
   public static String yyyy() {
      return new SimpleDateFormat("yyyy", Locale.CHINA).format(new Date(System.currentTimeMillis()));
@@ -385,7 +425,10 @@
   public static Date dateFrom_yyyy_MM_dd(String yyyy_MM_dd) throws Exception {
      return new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).parse(yyyy_MM_dd);
   }
   public static Date dateFrom_yyyy_MM_dd1(String yyyy_MM_dd_HH_mm_ss) throws Exception {
      return new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).parse(yyyy_MM_dd_HH_mm_ss);
   }
   public static Date dateFrom_yyyyMMddHHmmss(String yyyyMMddHHmmss) throws Exception {
      return new SimpleDateFormat("yyyyMMddHHmmss", Locale.CHINA).parse(yyyyMMddHHmmss);
   }
@@ -412,16 +455,29 @@
   }
   public static Integer week_Int(){
      String str = week_Str() ;
      return switch (str) {
         case "Mon" -> 1;
         case "Tue" -> 2;
         case "Wed" -> 3;
         case "Thu" -> 4;
         case "Fri" -> 5;
         case "Sat" -> 6;
         case "Sun" -> 7;
         default -> 0;
      };
      if(str.startsWith("周")){
         return switch (str) {
            case "周一" -> 1;
            case "周二" -> 2;
            case "周三" -> 3;
            case "周四" -> 4;
            case "周五" -> 5;
            case "周六" -> 6;
            case "周七" -> 0;//根据协议要求星期天为0
            default -> 0;
         };
      }else{
         return switch (str) {
            case "Mon" -> 1;
            case "Tue" -> 2;
            case "Wed" -> 3;
            case "Thu" -> 4;
            case "Fri" -> 5;
            case "Sat" -> 6;
            case "Sun" -> 0;//根据协议要求星期天为0
            default -> 0;
         };
      }
   }
   /**
    * 两个日期间相差秒钟数
@@ -468,6 +524,12 @@
   /**
    * 两个日期相差天数
    */
   public static long daysBetweenyyyy_MM_dd(Date yyyy_MM_dd_1 , Date yyyy_MM_dd_2)throws Exception{
      return ((((yyyy_MM_dd_1.getTime() - yyyy_MM_dd_2.getTime())/1000)/60)/60)/24 ;
   }
   /**
    * 两个日期相差天数
    */
   public static long daysBetweenyyyyMMdd(String yyyyMMdd_1 , String yyyyMMdd_2)throws Exception{
      return ((((dateFrom_yyyy_MM_dd(yyyyMMdd_1).getTime()-dateFrom_yyyy_MM_dd(yyyyMMdd_2).getTime())/1000)/60)/60)/24 ;
   }
@@ -483,6 +545,17 @@
   }
   //////////////////////////////////////////////////////////////////////////
   /**
    * 字符串型日期(2024-12)转成年月日数组
    * @param yyyy_MM 年月日
    * @return 年月日数组
    */
   public static int[] yyyy_MM_ymdGroup(String yyyy_MM){
      int y = Integer.parseInt(yyyy_MM.substring(0 , 4)) ;
      int m = Integer.parseInt(yyyy_MM.substring(5 , 7)) ;
      return new int[]{y,m} ;
   }
   /**
    * 字符串型日期(2009-09-10)转成年月日数组
@@ -587,7 +660,7 @@
    */
   public static Long lastXMinuteTime(int xMin)  {
      Calendar cal = Calendar.getInstance();  
      cal.add(Calendar.MINUTE, -xMin);
      cal.add(Calendar.MINUTE, xMin<=0?xMin:-xMin);
      Date date = cal.getTime() ;
      return date.getTime() ;
   }
@@ -603,7 +676,7 @@
      Date d = new SimpleDateFormat("yyyy-MM-dd HH", Locale.CHINA).parse(yyyy_MM_dd_HH);
      Calendar cal = Calendar.getInstance();  
      cal.setTime(d);         
      cal.add(Calendar.HOUR_OF_DAY, -xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
      Date date = cal.getTime() ;
      return DateTime.yyyy_MM_dd_HH(date) ;
   }
@@ -617,7 +690,7 @@
      Date d = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.CHINA).parse(yyyy_MM_dd_HH_mm);
      Calendar cal = Calendar.getInstance();  
      cal.setTime(d);         
      cal.add(Calendar.HOUR_OF_DAY, -xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
      Date date = cal.getTime() ;
      return DateTime.yyyy_MM_dd_HH_mm(date) ;
   }
@@ -631,7 +704,7 @@
      Date d = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).parse(yyyy_MM_dd_HH_mm_ss);
      Calendar cal = Calendar.getInstance();  
      cal.setTime(d);         
      cal.add(Calendar.HOUR_OF_DAY, -xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
      Date date = cal.getTime() ;
      return DateTime.yyyy_MM_dd_HH_mm_ss(date) ;
   }
@@ -645,7 +718,7 @@
      Date d = new SimpleDateFormat("yyyyMMddHH", Locale.CHINA).parse(yyyyMMddHH);
      Calendar cal = Calendar.getInstance();  
      cal.setTime(d);         
      cal.add(Calendar.HOUR_OF_DAY, -xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
      Date date = cal.getTime() ;
      return DateTime.yyyyMMddHH(date) ;
   }
@@ -659,7 +732,7 @@
      Date d = new SimpleDateFormat("yyyyMMddHHmm", Locale.CHINA).parse(yyyyMMddHHmm);
      Calendar cal = Calendar.getInstance();  
      cal.setTime(d);         
      cal.add(Calendar.HOUR_OF_DAY, -xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
      Date date = cal.getTime() ;
      return DateTime.yyyyMMddHHmm(date) ;
   }
@@ -673,7 +746,7 @@
      Date d = new SimpleDateFormat("yyyyMMddHHmmss", Locale.CHINA).parse(yyyyMMddHHmmss);
      Calendar cal = Calendar.getInstance();  
      cal.setTime(d);         
      cal.add(Calendar.HOUR_OF_DAY, -xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
      Date date = cal.getTime() ;
      return DateTime.yyyyMMddHHmmss(date) ;
   }
@@ -687,7 +760,7 @@
   public static String lastXHour_yyyy_MM_dd_HH(int xhour){
      Date date = new Date();
      Calendar cal = Calendar.getInstance();
      cal.add(Calendar.HOUR_OF_DAY, -xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
      date.setTime(cal.getTimeInMillis());         
      return DateTime.yyyy_MM_dd_HH(date) ;
   }
@@ -699,7 +772,7 @@
   public static String lastXHour_yyyy_MM_dd_HH_mm(int xhour){
      Date date = new Date();
      Calendar cal = Calendar.getInstance();
      cal.add(Calendar.HOUR_OF_DAY, -xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
      date.setTime(cal.getTimeInMillis());         
      return DateTime.yyyy_MM_dd_HH_mm(date) ;
   }
@@ -711,7 +784,7 @@
   public static String lastXHour_yyyy_MM_dd_HH_mm_ss(int xhour){
      Date date = new Date();
      Calendar cal = Calendar.getInstance();
      cal.add(Calendar.HOUR_OF_DAY, -xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
      date.setTime(cal.getTimeInMillis());         
      return DateTime.yyyy_MM_dd_HH_mm_ss(date) ;
   }
@@ -723,7 +796,7 @@
   public static String lastXHour_yyyyMMddHH(int xhour){
      Date date = new Date();
      Calendar cal = Calendar.getInstance();
      cal.add(Calendar.HOUR_OF_DAY, -xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
      date.setTime(cal.getTimeInMillis());         
      return DateTime.yyyyMMddHH(date) ;
   }
@@ -735,7 +808,7 @@
   public static String lastXHour_yyyyMMddHHmm(int xhour){
      Date date = new Date();
      Calendar cal = Calendar.getInstance();
      cal.add(Calendar.HOUR_OF_DAY, -xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
      date.setTime(cal.getTimeInMillis());         
      return DateTime.yyyyMMddHHmm(date) ;
   }
@@ -747,7 +820,7 @@
   public static String lastXHour_yyyyMMddHHmmss(int xhour){
      Date date = new Date();
      Calendar cal = Calendar.getInstance();
      cal.add(Calendar.HOUR_OF_DAY, -xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?xhour:-xhour);
      date.setTime(cal.getTimeInMillis());         
      return DateTime.yyyyMMddHHmmss(date) ;
   }
@@ -763,7 +836,7 @@
      Date d = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).parse(yyyy_MM_dd_HH_mm_ss);
      Calendar cal = Calendar.getInstance();  
      cal.setTime(d);         
      cal.add(Calendar.MINUTE, xminute);
      cal.add(Calendar.MINUTE, xminute<=0?-xminute:xminute );
      Date date = cal.getTime() ;
      return DateTime.yyyy_MM_dd_HH_mm_ss(date) ;
   }
@@ -779,7 +852,7 @@
      Date d = new SimpleDateFormat("yyyy-MM-dd HH", Locale.CHINA).parse(yyyy_MM_dd_HH);
      Calendar cal = Calendar.getInstance();  
      cal.setTime(d);         
      cal.add(Calendar.HOUR_OF_DAY, xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour );
      Date date = cal.getTime() ;
      return DateTime.yyyy_MM_dd_HH(date) ;
   }
@@ -793,7 +866,7 @@
      Date d = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.CHINA).parse(yyyy_MM_dd_HH_mm);
      Calendar cal = Calendar.getInstance();  
      cal.setTime(d);         
      cal.add(Calendar.HOUR_OF_DAY, xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
      Date date = cal.getTime() ;
      return DateTime.yyyy_MM_dd_HH_mm(date) ;
   }   
@@ -807,7 +880,7 @@
      Date d = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).parse(yyyy_MM_dd_HH_mm_ss);
      Calendar cal = Calendar.getInstance();  
      cal.setTime(d);         
      cal.add(Calendar.HOUR_OF_DAY, xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
      Date date = cal.getTime() ;
      return DateTime.yyyy_MM_dd_HH_mm_ss(date) ;
   }
@@ -821,7 +894,7 @@
      Date d = new SimpleDateFormat("yyyyMMddHH", Locale.CHINA).parse(yyyyMMddHH);
      Calendar cal = Calendar.getInstance();  
      cal.setTime(d);         
      cal.add(Calendar.HOUR_OF_DAY, xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
      Date date = cal.getTime() ;
      return DateTime.yyyyMMddHH(date) ;
   }
@@ -835,7 +908,7 @@
      Date d = new SimpleDateFormat("yyyyMMddHHmm", Locale.CHINA).parse(yyyyMMddHHmm);
      Calendar cal = Calendar.getInstance();  
      cal.setTime(d);         
      cal.add(Calendar.HOUR_OF_DAY, xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
      Date date = cal.getTime() ;
      return DateTime.yyyyMMddHHmm(date) ;
   }   /**
@@ -848,7 +921,7 @@
      Date d = new SimpleDateFormat("yyyyMMddHHmmss", Locale.CHINA).parse(yyyyMMddHHmmss);
      Calendar cal = Calendar.getInstance();  
      cal.setTime(d);         
      cal.add(Calendar.HOUR_OF_DAY, xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
      Date date = cal.getTime() ;
      return DateTime.yyyyMMddHHmmss(date) ;
   }
@@ -862,7 +935,7 @@
   public static String nextXHour_yyyy_MM_dd_HH(int xhour){
      Date date = new Date();
      Calendar cal = Calendar.getInstance();
      cal.add(Calendar.HOUR_OF_DAY, xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
      date.setTime(cal.getTimeInMillis());         
      return DateTime.yyyy_MM_dd_HH(date) ;
   }
@@ -874,7 +947,7 @@
   public static String nextXHour_yyyy_MM_dd_HH_mm(int xhour){
      Date date = new Date();
      Calendar cal = Calendar.getInstance();
      cal.add(Calendar.HOUR_OF_DAY, xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
      date.setTime(cal.getTimeInMillis());         
      return DateTime.yyyy_MM_dd_HH_mm(date) ;
   }
@@ -886,7 +959,7 @@
   public static String nextXHour_yyyy_MM_dd_HH_mm_ss(int xhour){
      Date date = new Date();
      Calendar cal = Calendar.getInstance();
      cal.add(Calendar.HOUR_OF_DAY, xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
      date.setTime(cal.getTimeInMillis());         
      return DateTime.yyyy_MM_dd_HH_mm_ss(date) ;
   }
@@ -900,7 +973,7 @@
   public static String nextXHour_yyyyMMddHH(int xhour){
      Date date = new Date();
      Calendar cal = Calendar.getInstance();
      cal.add(Calendar.HOUR_OF_DAY, xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
      date.setTime(cal.getTimeInMillis());         
      return DateTime.yyyyMMddHH(date) ;
   }
@@ -912,7 +985,7 @@
   public static String nextXHour_yyyyMMddHHmm(int xhour){
      Date date = new Date();
      Calendar cal = Calendar.getInstance();
      cal.add(Calendar.HOUR_OF_DAY, xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
      date.setTime(cal.getTimeInMillis());         
      return DateTime.yyyyMMddHHmm(date) ;
   }
@@ -924,7 +997,7 @@
   public static String nextXHour_yyyyMMddHHmmss(int xhour){
      Date date = new Date();
      Calendar cal = Calendar.getInstance();
      cal.add(Calendar.HOUR_OF_DAY, xhour);
      cal.add(Calendar.HOUR_OF_DAY, xhour<=0?-xhour:xhour);
      date.setTime(cal.getTimeInMillis());         
      return DateTime.yyyyMMddHHmmss(date) ;
   }
@@ -943,7 +1016,7 @@
      Date d = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).parse(yyyy_MM_dd);
      Calendar cal = Calendar.getInstance();  
      cal.setTime(d);         
      cal.add(Calendar.DAY_OF_YEAR, -xday);
      cal.add(Calendar.DAY_OF_YEAR, xday<=0?xday:-xday);
      Date date = cal.getTime() ;
      return DateTime.yyyy_MM_dd(date) ;
   }
@@ -957,7 +1030,7 @@
      Date d = new SimpleDateFormat("yyyyMMdd", Locale.CHINA).parse(yyyyMMdd);
      Calendar cal = Calendar.getInstance();  
      cal.setTime(d);         
      cal.add(Calendar.DAY_OF_YEAR, -xday);
      cal.add(Calendar.DAY_OF_YEAR, xday<=0?xday:-xday);
      Date date = cal.getTime() ;
      return DateTime.yyyyMMdd(date) ;
   }
@@ -969,7 +1042,7 @@
   public static String lastXDay_yyyy_MM_dd(int xday){
      Date date = new Date();
      Calendar cal = Calendar.getInstance();
      cal.add(Calendar.DAY_OF_YEAR, -xday);
      cal.add(Calendar.DAY_OF_YEAR, xday<=0?xday:-xday);
      date.setTime(cal.getTimeInMillis());         
      return DateTime.yyyy_MM_dd(date) ;
   }
@@ -981,7 +1054,7 @@
   public static String lastXDay_yyyy_MM_dd_HH_ss(int xday){
      Date date = new Date();
      Calendar cal = Calendar.getInstance();
      cal.add(Calendar.DAY_OF_YEAR, -xday);
      cal.add(Calendar.DAY_OF_YEAR, xday<=0?xday:-xday);
      date.setTime(cal.getTimeInMillis());         
      return DateTime.yyyy_MM_dd_HH_mm_ss(date) ;
   }
@@ -993,7 +1066,7 @@
   public static String lastXDay_yyyyMMdd(int xday){
      Date date = new Date();
      Calendar cal = Calendar.getInstance();
      cal.add(Calendar.DAY_OF_YEAR, -xday);
      cal.add(Calendar.DAY_OF_YEAR, xday<=0?xday:-xday);
      date.setTime(cal.getTimeInMillis());         
      return DateTime.yyyyMMdd(date) ;
   }
@@ -1012,7 +1085,7 @@
      Date d = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).parse(yyyy_MM_dd);
      Calendar cal = Calendar.getInstance();  
      cal.setTime(d);         
      cal.add(Calendar.DAY_OF_YEAR, xday);
      cal.add(Calendar.DAY_OF_YEAR, xday<=0?-xday:xday);
      Date date = cal.getTime() ;
      return DateTime.yyyy_MM_dd(date) ;
   }
@@ -1026,7 +1099,7 @@
      Date d = new SimpleDateFormat("yyyyMMdd", Locale.CHINA).parse(yyyyMMdd);
      Calendar cal = Calendar.getInstance();  
      cal.setTime(d);         
      cal.add(Calendar.DAY_OF_YEAR, xday);
      cal.add(Calendar.DAY_OF_YEAR, xday<=0?-xday:xday);
      Date date = cal.getTime() ;
      return DateTime.yyyyMMdd(date) ;
   }
@@ -1038,7 +1111,7 @@
   public static String nextXDay_yyyy_MM_dd(int xday){
      Date date = new Date();
      Calendar cal = Calendar.getInstance();
      cal.add(Calendar.DAY_OF_YEAR, xday);
      cal.add(Calendar.DAY_OF_YEAR, xday<=0?-xday:xday);
      date.setTime(cal.getTimeInMillis());         
      return DateTime.yyyy_MM_dd(date) ;
   }
@@ -1050,7 +1123,7 @@
   public static String nextXDay_yyyyMMdd(int xday){
      Date date = new Date();
      Calendar cal = Calendar.getInstance();
      cal.add(Calendar.DAY_OF_YEAR, xday);
      cal.add(Calendar.DAY_OF_YEAR, xday<=0?-xday:xday);
      date.setTime(cal.getTimeInMillis());         
      return DateTime.yyyyMMdd(date) ;
   }
@@ -1418,7 +1491,22 @@
            "09", "11", "12", "13", "14", "15", "16", "17", "18", "19",
            "20", "21", "22", "23" };
   }
   public static int[] dayGrpInMonth(int year, int month){
      if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){
          return new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31} ;
      }else{
         if(month == 2){
            if(isLeapYear(year)){
               return new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29} ;
            }else{
               return new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28} ;
            }
         }else{
            return new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30} ;
         }
      }
   }
   public static String getWeek(int wk) {
      if (wk == 1) {
@@ -1565,13 +1653,7 @@
      String[] s = new String[3] ;
      s[0] = ymd.substring(0 , 4) ;
      s[1] = ymd.substring(5 , 7) ;
      if(s[1].charAt(0) == '0'){
         s[1] = s[1].substring(1) ;
      }
      s[2] = ymd.substring(8,10) ;
      if(s[2].charAt(0) == '0'){
         s[2] = s[2].substring(1) ;
      }
      return s ;
   }
   /**
@@ -1619,7 +1701,7 @@
   }
   
   /*
   public static void main(String[] args){
      Long now = getTime() ;
      System.out.println(now);
@@ -1630,7 +1712,9 @@
      Date dt = getDate(1447857387L) ;
      String s = yyyy_MM_dd_HH_mm_ss(dt);
      System.out.println(s);
      System.out.println(lastMonth_ym()) ;
   }
   */
}