From cb38789006b411b29fba27a6a60493dc78946e17 Mon Sep 17 00:00:00 2001
From: cmg <527198563@qq.com>
Date: 星期六, 22 六月 2024 09:49:27 +0800
Subject: [PATCH] Merge branch 'master-stander' into master-jiayan

---
 src/main/java/com/hx/util/DateUtil.java |   95 ++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 84 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/hx/util/DateUtil.java b/src/main/java/com/hx/util/DateUtil.java
index f54bcda..1ae3c6b 100644
--- a/src/main/java/com/hx/util/DateUtil.java
+++ b/src/main/java/com/hx/util/DateUtil.java
@@ -1,5 +1,7 @@
 package com.hx.util;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
@@ -452,6 +454,25 @@
     }
 
     /**
+     * 鑾峰彇涓や釜鏃堕棿鐩稿樊鍒嗛挓鏁�
+     * @param startTime 寮�濮嬫椂闂�
+     * @param endTime 缁撴潫鏃堕棿
+     * @param remainder 浣欐暟杩�1
+     * @return 鍒嗛挓
+     */
+    public static int differMinute(Date startTime, Date endTime,boolean remainder) {
+        BigDecimal sTime = new BigDecimal(startTime.getTime());
+        BigDecimal eTime = new BigDecimal(endTime.getTime());
+        eTime = eTime.subtract(sTime).setScale(0,RoundingMode.HALF_UP);
+        if(remainder){
+            eTime = eTime.divide(BigDecimal.valueOf(60000.0)).setScale(0, RoundingMode.UP);
+        }else{
+            eTime = eTime.divide(BigDecimal.valueOf(60000.0)).setScale(0, RoundingMode.DOWN);
+        }
+        return eTime.intValue();
+    }
+
+    /**
      * endTime姣攕tartTime澶氱殑澶╂暟
      * @param startTime 鏈�灏忔椂闂�
      * @param endTime 鏈�澶ф椂闂�
@@ -549,6 +570,7 @@
         calendar.set(Calendar.HOUR_OF_DAY, 0);
         calendar.set(Calendar.MINUTE, 0);
         calendar.set(Calendar.SECOND, 0);
+        calendar.set(Calendar.MILLISECOND,0);
         return calendar.getTime();
     }
 
@@ -572,9 +594,25 @@
     /**
      * 鑾峰彇褰撳墠鏈堢殑缁撴潫鏃堕棿
      * @param date 鐐瑰墠鏃堕棿
-     * @return 杩斿洖鏃堕棿 鏍煎紡yyyy-MM-dd 23:59:59
+     * @return 杩斿洖鏃堕棿 鏍煎紡yyyy-MM-dd 23:59:59999
      */
     public static Date getMonthEnd(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
+        calendar.set(Calendar.HOUR_OF_DAY, 23);
+        calendar.set(Calendar.MINUTE, 59);
+        calendar.set(Calendar.SECOND, 59);
+        calendar.set(Calendar.MILLISECOND,999);
+        return calendar.getTime();
+    }
+
+    /**
+     * 鑾峰彇褰撳墠鏈堢殑缁撴潫鏃堕棿锛屾病鏈夋绉�
+     * @param date 鐐瑰墠鏃堕棿
+     * @return 杩斿洖鏃堕棿 鏍煎紡yyyy-MM-dd 23:59:59
+     */
+    public static Date getMonthEndNoMillisecond(Date date) {
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(date);
         calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
@@ -613,15 +651,33 @@
         calendar.set(Calendar.HOUR_OF_DAY, 0);
         calendar.set(Calendar.MINUTE, 0);
         calendar.set(Calendar.SECOND, 0);
+        calendar.set(Calendar.MILLISECOND,0);
         return calendar.getTime();
     }
 
     /**
      * 鑾峰彇褰撳墠骞寸殑缁撴潫鏃堕棿
      * @param time 鏃堕棿
-     * @return 杩斿洖鏃堕棿 鏍煎紡yyyy-MM-dd 00:00:00
+     * @return 杩斿洖鏃堕棿 鏍煎紡yyyy-MM-dd 23:59:59999
      */
     public static Date getYearEnd(Date time) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(time);
+        calendar.set(Calendar.MONTH, 11);
+        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DATE));
+        calendar.set(Calendar.HOUR_OF_DAY, 23);
+        calendar.set(Calendar.MINUTE, 59);
+        calendar.set(Calendar.SECOND, 59);
+        calendar.set(Calendar.MILLISECOND,999);
+        return calendar.getTime();
+    }
+
+    /**
+     * 鑾峰彇褰撳墠骞寸殑缁撴潫鏃堕棿锛屾病鏈夋绉�
+     * @param time 鏃堕棿
+     * @return 杩斿洖鏃堕棿 鏍煎紡yyyy-MM-dd 23:59:59
+     */
+    public static Date getYearEndNoMillisecond(Date time) {
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(time);
         calendar.set(Calendar.MONTH, 11);
@@ -668,13 +724,27 @@
         calendar.set(Calendar.HOUR_OF_DAY, 0);
         calendar.set(Calendar.MINUTE, 0);
         calendar.set(Calendar.SECOND, 0);
+        calendar.set(Calendar.MILLISECOND, 0);
         return calendar.getTime();
     }
 
     /**杩欏ぉ鐨勬渶鍚庢椂闂�
-     * 鏃ユ湡2000-01-01鍙�2000-01-01 23:59:59
+     * 鏃ユ湡2000-01-01鍙�2000-01-01 23:59:59999
      */
     public static Date dayToEndDate(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(Calendar.HOUR_OF_DAY, 23);
+        calendar.set(Calendar.MINUTE, 59);
+        calendar.set(Calendar.SECOND, 59);
+        calendar.set(Calendar.MILLISECOND, 999);
+        return calendar.getTime();
+    }
+
+    /**杩欏ぉ鐨勬渶鍚庢椂闂达紝娌℃湁姣
+     * 鏃ユ湡2000-01-01鍙�2000-01-01 23:59:59
+     */
+    public static Date dayToEndDateNoMillisecond(Date date) {
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(date);
         calendar.set(Calendar.HOUR_OF_DAY, 23);
@@ -816,16 +886,19 @@
 
     /**
      * 鑾峰彇鏌愬ぉ缁撴潫绉掓暟
-     * @param startTime
+     * @param dateTime      鏃ユ湡
+     * @param lateSecond    寤惰繜绉掓暟
      * @return
      */
-    public long todayEndSecond(Date startTime) {
-        if(startTime == null){
-            startTime = new Date();
+    public static long todayEndSecond(Date dateTime, Long lateSecond) {
+        if(dateTime == null){
+            dateTime = new Date();
         }
-        Date endTime = DateUtil.dayToEndDate(startTime);
-        //澶氬姞10绉�
-        return differSecond(startTime, endTime) + 10L;
+        if(lateSecond == null){
+            lateSecond = 0L;
+        }
+        Date endTime = DateUtil.dayToEndDate(dateTime);
+        return differSecond(dateTime, endTime) + lateSecond;
     }
 
     /**
@@ -834,7 +907,7 @@
      * @param endTime   缁撴潫鏃堕棿
      * @return
      */
-    public long differSecond(Date startTime, Date endTime) {
+    public static long differSecond(Date startTime, Date endTime) {
         if(startTime == null || endTime == null){
             return 0L;
         }

--
Gitblit v1.8.0