From a7fa7db6281875687c3e2c90275d4676ac5869c2 Mon Sep 17 00:00:00 2001
From: fwq <582742538@qq.com>
Date: 星期三, 04 一月 2023 19:30:51 +0800
Subject: [PATCH] 时间年开始/年结束

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

diff --git a/src/main/java/com/hx/util/DateUtil.java b/src/main/java/com/hx/util/DateUtil.java
index befbd61..5bcedbe 100644
--- a/src/main/java/com/hx/util/DateUtil.java
+++ b/src/main/java/com/hx/util/DateUtil.java
@@ -572,8 +572,7 @@
 
     /**
      * 鑾峰彇褰撳墠鏈堢殑缁撴潫鏃堕棿
-     *
-     * @param date 0鎷垮彇褰撴湀锛屾浠h〃鍚庯紝璐熶唬琛ㄥ墠锛屽�间负鍑犱釜锛堟湀锛�
+     * @param date 鐐瑰墠鏃堕棿
      * @return 杩斿洖鏃堕棿 鏍煎紡yyyy-MM-dd 23:59:59
      */
     public static Date getMonthEnd(Date date) {
@@ -588,7 +587,6 @@
 
     /**
      * 鑾峰彇褰撳墠鏈堢殑缁撴潫鏃堕棿
-     *
      * @param num 0鎷垮彇褰撴湀锛屾浠h〃鍚庯紝璐熶唬琛ㄥ墠锛屽�间负鍑犱釜锛堟湀锛�
      * @return 杩斿洖鏃堕棿 鏍煎紡yyyy-MM-dd 23:59:59
      */
@@ -611,7 +609,7 @@
     public static Date getYearStart(Date time) {
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(time);
-        calendar.set(Calendar.MONTH, 1);
+        calendar.set(Calendar.MONTH, 0);
         calendar.set(Calendar.DAY_OF_MONTH, 1);
         calendar.set(Calendar.HOUR_OF_DAY, 0);
         calendar.set(Calendar.MINUTE, 0);
@@ -619,40 +617,68 @@
         return calendar.getTime();
     }
 
-
     /**
+     * 鑾峰彇褰撳墠骞寸殑缁撴潫鏃堕棿
+     * @param time 鏃堕棿
+     * @return 杩斿洖鏃堕棿 鏍煎紡yyyy-MM-dd 00:00:00
+     */
+    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);
+        return calendar.getTime();
+    }
+
+
+    /**杩欏ぉ鐨勫紑濮嬫椂闂�
      * 鏃ユ湡2000-01-01鍙�2000-01-01 00:00:00
      */
     public static String dayToStart(Date date) {
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(date);
-        calendar.set(Calendar.HOUR, 0);
+        calendar.set(Calendar.HOUR_OF_DAY, 0);
         calendar.set(Calendar.MINUTE, 0);
         calendar.set(Calendar.SECOND, 0);
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
         return sdf.format(calendar.getTime());
     }
 
-    /**
+    /**杩欏ぉ鐨勬渶鍚庢椂闂�
      * 鏃ユ湡2000-01-01鍙�2000-01-01 23:59:59
      */
     public static String dayToEnd(Date date) {
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(date);
-        calendar.set(Calendar.HOUR, 23);
+        calendar.set(Calendar.HOUR_OF_DAY, 23);
         calendar.set(Calendar.MINUTE, 59);
         calendar.set(Calendar.SECOND, 59);
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
         return sdf.format(calendar.getTime());
     }
 
-    /**
+    /**杩欏ぉ鐨勫紑濮嬫椂闂�
+     * 鏃ユ湡2000-01-01鍙�2000-01-01 00:00:00
+     */
+    public static Date dayToStartDate(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(Calendar.HOUR_OF_DAY, 0);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        return calendar.getTime();
+    }
+
+    /**杩欏ぉ鐨勬渶鍚庢椂闂�
      * 鏃ユ湡2000-01-01鍙�2000-01-01 23:59:59
      */
     public static Date dayToEndDate(Date date) {
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(date);
-        calendar.set(Calendar.HOUR, 23);
+        calendar.set(Calendar.HOUR_OF_DAY, 23);
         calendar.set(Calendar.MINUTE, 59);
         calendar.set(Calendar.SECOND, 59);
         return calendar.getTime();
@@ -708,10 +734,36 @@
     public static boolean getFrontMinute(Date date,int num) {
         Calendar cal = Calendar.getInstance();
         cal.setTime(date);
-        cal.set(Calendar.HOUR, num-1);
+        cal.set(Calendar.HOUR_OF_DAY, num-1);
         cal.set(Calendar.MINUTE, 59);
         cal.set(Calendar.SECOND, 59);
 
         return date.compareTo(cal.getTime()) < 1;
     }
+
+    /**
+     * 鑾峰緱鏌愪釜鏃ユ湡鐨勫綋澶╂煇鐐�
+     * 渚嬪:2022-12-26 11:20:00 -> 2022-12-26 13:00:00
+     * @param num 24灏忔椂
+     */
+    public static String getHourDayTime(Date date,int num) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(Calendar.HOUR_OF_DAY, num);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
+        return sdf.format(calendar.getTime());
+    }
+
+    /**
+     * 鑾峰彇鏃堕棿褰撴湀鍓╀綑澶╂暟
+     * */
+    public static Integer getMonthSurplus(Date date) {
+        Calendar month = Calendar.getInstance();
+        month.setTime(new Date());
+        month.set(Calendar.DATE, 1);
+        month.roll(Calendar.DATE, -1);
+        return month.getActualMaximum(Calendar.DATE) - Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
+    }
 }

--
Gitblit v1.8.0