From 2f55cebbad3dea187a5f91d16ec80a9677dab699 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 13 十一月 2024 11:16:53 +0800
Subject: [PATCH] 1

---
 src/main/java/com/yssh/utils/DateUtils.java |  214 +++++++++++++++++++++++++++++++++--------------------
 1 files changed, 133 insertions(+), 81 deletions(-)

diff --git a/src/main/java/com/yssh/utils/DateUtils.java b/src/main/java/com/yssh/utils/DateUtils.java
index 0e771f4..838ce2b 100644
--- a/src/main/java/com/yssh/utils/DateUtils.java
+++ b/src/main/java/com/yssh/utils/DateUtils.java
@@ -7,11 +7,6 @@
 
 import org.apache.commons.lang3.time.DateFormatUtils;
 
-/**
- * 鏃堕棿宸ュ叿绫�
- * 
- * @author tam
- */
 public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
 	public static String YYYY = "yyyy";
 
@@ -19,34 +14,28 @@
 
 	public static String YYYY_MM_DD = "yyyy-MM-dd";
 
+	public static String YYYYMM = "yyyyMM";
+
+	public static String YYYYMMDD = "yyyyMMdd";
+
 	public static String YYYYMMDDHH = "yyyyMMddHH";
-	
+
 	public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
 
 	public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
-	
-	public static String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm";
-	
-	public static String YYYY_MM_DD_HH = "yyyy-MM-dd HH";
-	
-	private static String[] parsePatterns = { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",
-			"yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss",
-			"yyyy.MM.dd HH:mm", "yyyy.MM" };
 
-	/**
-	 * 鑾峰彇褰撳墠Date鍨嬫棩鏈�
-	 * 
-	 * @return Date() 褰撳墠鏃ユ湡
-	 */
+	public static String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm";
+
+	public static String YYYY_MM_DD_HH = "yyyy-MM-dd HH";
+
+	private static String[] parsePatterns = {"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",
+			"yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss",
+			"yyyy.MM.dd HH:mm", "yyyy.MM"};
+
 	public static Date getNowDate() {
 		return new Date();
 	}
 
-	/**
-	 * 鑾峰彇褰撳墠鏃ユ湡, 榛樿鏍煎紡涓簓yyy-MM-dd
-	 * 
-	 * @return String
-	 */
 	public static String getDate() {
 		return dateTimeNow(YYYY_MM_DD);
 	}
@@ -77,6 +66,22 @@
 		} catch (ParseException e) {
 			throw new RuntimeException(e);
 		}
+	}
+
+	public static String getYyyyMm(Date date) {
+		return new SimpleDateFormat(YYYYMM).format(date);
+	}
+
+	public static String getYyyyMmDd(Date date) {
+		return new SimpleDateFormat(YYYYMMDD).format(date);
+	}
+
+	public static String getYyyyMmDdHh(Date date) {
+		return new SimpleDateFormat(YYYYMMDDHH).format(date);
+	}
+
+	public static String getYyyyMmDdHhMmSs(Date date) {
+		return new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(date);
 	}
 
 	/**
@@ -137,38 +142,38 @@
 		// long sec = diff % nd % nh % nm / ns;
 		return day + "澶�" + hour + "灏忔椂" + min + "鍒嗛挓";
 	}
-	
+
 	/**
-	 * @Title: differHour   
+	 * @throws
+	 * @Title: differHour
 	 * @Description: 鑾峰彇涓や釜鏃堕棿宸嚑涓皬鏃�
 	 * @param: @param endDate
 	 * @param: @param nowDate
-	 * @param: @return      
-	 * @return: long      
-	 * @throws
+	 * @param: @return
+	 * @return: long
 	 */
-	public static int differDay(Date startDate, Date endDate){
+	public static int differDay(Date startDate, Date endDate) {
 		long nd = 1000 * 24 * 60 * 60;
 		long diff = endDate.getTime() - startDate.getTime();
 		double dd = Double.valueOf(String.valueOf(diff)) / nd;
 		// 璁$畻宸灏戝ぉ
 		return Double.valueOf(Math.ceil(dd)).intValue();
 	}
-	
+
 	/**
 	 * @Description: 鑾峰彇涓�娈垫椂闂撮棿闅�
 	 * @param:date 闇�瑕佹搷浣滅殑鏃堕棿瀵硅薄
-	 * @param:day 鎿嶄綔鐨勬椂闂撮棿闅� 
-	 * 	姝f暟涓轰箣鍚庝竴娈垫椂闂�
-	 * 	璐熸暟涓轰箣鍓嶄竴娈垫椂闂�
+	 * @param:day 鎿嶄綔鐨勬椂闂撮棿闅�
+	 * 姝f暟涓轰箣鍚庝竴娈垫椂闂�
+	 * 璐熸暟涓轰箣鍓嶄竴娈垫椂闂�
 	 * @param:dateType 鎿嶄綔鐨勬椂闂存椂鍒嗙澶╅�夋嫨
 	 * 甯哥敤鏈夛細
-	 * 	Calendar.MINUTE 鍒�
-	 * 	Calendar.HOUR_OF_DAY 鏃�
-	 * 	Calendar.DATE 澶�
-	 * 	Calendar.MONTH 鏈�
+	 * Calendar.MINUTE 鍒�
+	 * Calendar.HOUR_OF_DAY 鏃�
+	 * Calendar.DATE 澶�
+	 * Calendar.MONTH 鏈�
 	 */
-	public static Date getAPeriodOfTime(Date date, int day,int dateType) {
+	public static Date getAPeriodOfTime(Date date, int day, int dateType) {
 		Calendar calendar = Calendar.getInstance();
 		calendar.setTime(date);
 		calendar.add(dateType, day);
@@ -191,26 +196,24 @@
 
 		return times;
 	}
-	
-	/**
-	 */
-	public static Map<Date, Date> segmentationDateByTimeQuantum(Date startDate, Date endDate, int timeQuantum,int dateType){
+
+	public static Map<Date, Date> segmentationDateByTimeQuantum(Date startDate, Date endDate, int timeQuantum, int dateType) {
 		LinkedHashMap<Date, Date> result = new LinkedHashMap<Date, Date>();
-		long startTimeMillisecond= startDate.getTime();
+		long startTimeMillisecond = startDate.getTime();
 		long endTimeMillisecond = endDate.getTime();
 		Long quantumTimeMillisecond = 0L;
 		switch (dateType) {
-		case Calendar.DATE:
-			quantumTimeMillisecond = new Integer(1000 * 60 * 60 * 24 * timeQuantum).longValue();
-			break;
-		case Calendar.HOUR_OF_DAY:
-			quantumTimeMillisecond = new Integer(1000 * 60 * 60 * timeQuantum).longValue();
-			break;
-		case Calendar.MINUTE:
-			quantumTimeMillisecond = new Integer(1000 * 60 * timeQuantum).longValue();
-			break;
-		default:
-			break;
+			case Calendar.DATE:
+				quantumTimeMillisecond = new Integer(1000 * 60 * 60 * 24 * timeQuantum).longValue();
+				break;
+			case Calendar.HOUR_OF_DAY:
+				quantumTimeMillisecond = new Integer(1000 * 60 * 60 * timeQuantum).longValue();
+				break;
+			case Calendar.MINUTE:
+				quantumTimeMillisecond = new Integer(1000 * 60 * timeQuantum).longValue();
+				break;
+			default:
+				break;
 		}
 		for (long time = startTimeMillisecond; time < endTimeMillisecond; time += quantumTimeMillisecond) {
 			Date beginDate = new Date(time);
@@ -222,32 +225,81 @@
 		}
 		return result;
 	}
-	
-	/**
-     * 鑾峰彇鏈湀绗竴澶�
-     * @return String
-     **/
-    public static Date getMonthStart() {
-        Calendar cal = Calendar.getInstance();
-        //cal.set(Calendar.MONTH, 3);
-		cal.set(Calendar.DAY_OF_MONTH, 1);
-        return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 00:00:00");
-    }
- 
-    /**
-     * 鑾峰彇鏈湀鏈�鍚庝竴澶�
-     * @return String
-     **/
-    public static Date getMonthEnd() {
-        Calendar cal = Calendar.getInstance();
-		//cal.set(Calendar.MONTH, 3);
-        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
-        return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 23:59:59");
-    }
 
-    public static void main(String[] args) {
-		//System.out.println(parseDateToStr(YYYY_MM_DD_HH_MM_SS, getMonthStart()));
-		//System.err.println(parseDateToStr(YYYY_MM_DD_HH_MM_SS, getMonthEnd()));
-		System.out.println(parseDateToStr(YYYY_MM_DD_HH_MM_SS, getAPeriodOfTime(getNowDate(), -7, Calendar.DATE)));
+	/**
+	 * 鍓櫎鏃ユ湡鐨勬椂闂撮儴鍒�
+	 */
+	public static Date trimTime(Date date) {
+		Calendar cal = Calendar.getInstance();
+		cal.setTime(date);
+
+		return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 00:00:00");
+	}
+
+	/**
+	 * 鍘诲勾
+	 */
+	public static Date lastYear(Date date) {
+		Calendar cal = Calendar.getInstance();
+		cal.setTime(date);
+		cal.add(Calendar.YEAR, -1);
+
+		return cal.getTime();
+	}
+
+	/**
+	 * 鑾峰彇涓�骞翠腑鐨勭鍑犲懆
+	 */
+	public static int getWeekOfYear(Date date) {
+		Calendar cal = Calendar.getInstance();
+		cal.setTime(date);
+
+		return cal.get(Calendar.WEEK_OF_YEAR);
+	}
+
+	/**
+	 * 鑾峰彇涓�骞翠腑鐨勭鍑犲懆鐨勬槦鏈熶竴
+	 */
+	public static Date getWeekOfYearForMon(int year, int weekOfYear) {
+		Calendar cal = Calendar.getInstance();
+		cal.set(Calendar.YEAR, year);
+		cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+		cal.set(Calendar.WEEK_OF_YEAR, weekOfYear);
+
+		return cal.getTime();
+	}
+
+	/**
+	 * 鑾峰彇涓�骞翠腑鐨勭鍑犲懆鐨勬槦鏈熸棩
+	 */
+	public static Date getWeekOfYearForSun(int year, int weekOfYear) {
+		Calendar cal = Calendar.getInstance();
+		cal.set(Calendar.YEAR, year);
+		cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
+		cal.set(Calendar.WEEK_OF_YEAR, weekOfYear);
+
+		return cal.getTime();
+	}
+
+	/**
+	 * 鑾峰彇鏈湀绗竴澶�
+	 **/
+	public static Date getMonthStart(Date date) {
+		Calendar cal = Calendar.getInstance();
+		// cal.set(Calendar.MONTH, 3)
+		cal.setTime(date);
+		cal.set(Calendar.DAY_OF_MONTH, 1);
+		return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 00:00:00");
+	}
+
+	/**
+	 * 鑾峰彇鏈湀鏈�鍚庝竴澶�
+	 **/
+	public static Date getMonthEnd(Date date) {
+		Calendar cal = Calendar.getInstance();
+		// cal.set(Calendar.MONTH, 3)
+		cal.setTime(date);
+		cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
+		return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 23:59:59");
 	}
 }

--
Gitblit v1.9.3