From 842237345ac469b02e9add8f9fd8bae5d4f7cdac Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期二, 25 二月 2025 14:33:15 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java |  150 +++++++++++++++++++++++++++++++++++++------------
 1 files changed, 112 insertions(+), 38 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java
index 8e97a16..b1dcd25 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/DateTime.java
+++ b/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()));
@@ -423,7 +463,7 @@
 				case "鍛ㄥ洓" -> 4;
 				case "鍛ㄤ簲" -> 5;
 				case "鍛ㄥ叚" -> 6;
-				case "鍛ㄤ竷" -> 7;
+				case "鍛ㄤ竷" -> 0;//鏍规嵁鍗忚瑕佹眰鏄熸湡澶╀负0
 				default -> 0;
 			};
 		}else{
@@ -434,7 +474,7 @@
 				case "Thu" -> 4;
 				case "Fri" -> 5;
 				case "Sat" -> 6;
-				case "Sun" -> 7;
+				case "Sun" -> 0;//鏍规嵁鍗忚瑕佹眰鏄熸湡澶╀负0
 				default -> 0;
 			};
 		}
@@ -484,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 ;
 	}
@@ -499,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)杞垚骞存湀鏃ユ暟缁�
@@ -603,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() ;
 	}
@@ -619,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) ;
 	}
@@ -633,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) ;
 	}
@@ -647,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) ;
 	}
@@ -661,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) ;
 	}
@@ -675,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) ;
 	}
@@ -689,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) ;
 	}
@@ -703,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) ;
 	}
@@ -715,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) ;
 	}
@@ -727,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) ;
 	}
@@ -739,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) ;
 	}
@@ -751,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) ;
 	}
@@ -763,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) ;
 	}
@@ -779,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) ;
 	}
@@ -795,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) ;
 	}
@@ -809,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) ;
 	}	
@@ -823,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) ;
 	}
@@ -837,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) ;
 	}
@@ -851,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) ;
 	}	/**
@@ -864,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) ;
 	}
@@ -878,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) ;
 	}
@@ -890,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) ;
 	}
@@ -902,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) ;
 	}
@@ -916,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) ;
 	}
@@ -928,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) ;
 	}
@@ -940,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) ;
 	}
@@ -959,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) ;
 	}
@@ -973,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) ;
 	}
@@ -985,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) ;
 	}
@@ -997,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) ;
 	}
@@ -1009,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) ;
 	}
@@ -1028,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) ;
 	}
@@ -1042,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) ;
 	}
@@ -1054,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) ;
 	}
@@ -1066,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) ;
 	}
@@ -1434,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) {
@@ -1640,6 +1712,8 @@
 		Date dt = getDate(1447857387L) ;
 		String s = yyyy_MM_dd_HH_mm_ss(dt);
 		System.out.println(s);
+
+		System.out.println(lastMonth_ym()) ;
 	}
 
 

--
Gitblit v1.8.0