From 2e1c154f1332681fb8da61cb3012381a236e816a Mon Sep 17 00:00:00 2001
From: chenjiahe <763432473@qq.com>
Date: 星期四, 15 十二月 2022 16:55:59 +0800
Subject: [PATCH] 新增时间算法

---
 src/main/java/com/hx/util/DateUtil.java |  147 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 145 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/hx/util/DateUtil.java b/src/main/java/com/hx/util/DateUtil.java
index 9b18d81..617b78b 100644
--- a/src/main/java/com/hx/util/DateUtil.java
+++ b/src/main/java/com/hx/util/DateUtil.java
@@ -440,6 +440,18 @@
     }
 
     /**
+     * 鑾峰彇涓や釜鏃堕棿鐩稿樊鍒嗛挓鏁�
+     * @param startTime 寮�濮嬫椂闂�
+     * @param endTime 缁撴潫鏃堕棿
+     * @return 鍒嗛挓
+     */
+    public static long differMinute(Date startTime, Date endTime) {
+        long NTime = startTime.getTime();
+        long OTime = endTime.getTime();
+        return (NTime - OTime) / 1000 / 60;
+    }
+
+    /**
      * endTime姣攕tartTime澶氱殑澶╂暟
      * @param startTime 鏈�灏忔椂闂�
      * @param endTime 鏈�澶ф椂闂�
@@ -524,8 +536,139 @@
         }
 
         return 0;
-
-
     }
 
+    /**
+     * 鑾峰彇褰撳墠鏈堢殑寮�濮嬫椂闂�
+     * @param time 鏃堕棿
+     * @return 杩斿洖鏃堕棿 鏍煎紡yyyy-MM-dd 00:00:00
+     */
+    public static Date getMonthStart(Date time) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(time);
+        calendar.set(Calendar.DAY_OF_MONTH, 1);
+        calendar.set(Calendar.HOUR_OF_DAY, 0);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        return calendar.getTime();
+    }
+
+    /**
+     * 鑾峰彇褰撳墠鏈堢殑寮�濮嬫椂闂�
+     *
+     * @param num 0鎷垮彇褰撴湀锛屾浠h〃鍚庯紝璐熶唬琛ㄥ墠锛屽�间负鍑犱釜锛堟湀锛�
+     * @return 杩斿洖鏃堕棿 鏍煎紡yyyy-MM-dd 00:00:00
+     */
+    public static String getMonthStart(Integer num) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.add(Calendar.MONTH, num);
+        calendar.set(Calendar.DAY_OF_MONTH, 1);
+        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());
+    }
+
+    /**
+     * 鑾峰彇褰撳墠鏈堢殑缁撴潫鏃堕棿
+     *
+     * @param date 0鎷垮彇褰撴湀锛屾浠h〃鍚庯紝璐熶唬琛ㄥ墠锛屽�间负鍑犱釜锛堟湀锛�
+     * @return 杩斿洖鏃堕棿 鏍煎紡yyyy-MM-dd 23:59:59
+     */
+    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);
+        return calendar.getTime();
+    }
+
+    /**
+     * 鑾峰彇褰撳墠鏈堢殑缁撴潫鏃堕棿
+     *
+     * @param num 0鎷垮彇褰撴湀锛屾浠h〃鍚庯紝璐熶唬琛ㄥ墠锛屽�间负鍑犱釜锛堟湀锛�
+     * @return 杩斿洖鏃堕棿 鏍煎紡yyyy-MM-dd 23:59:59
+     */
+    public static String getMonthEnd(Integer num) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.add(Calendar.MONTH, num);
+        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);
+        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 String dayToStart(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(Calendar.HOUR, 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.MINUTE, 59);
+        calendar.set(Calendar.SECOND, 59);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
+        return sdf.format(calendar.getTime());
+    }
+
+    /**鑾峰彇鏈堜唤鐨勫ぉ鏁�
+     * @param date 鏃堕棿
+     * @return 鏈堜唤鐨勫ぉ鏁�
+     */
+    public static int getMonthDays(Date date) {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        cal.set(Calendar.DATE, 1);
+        cal.roll(Calendar.DATE, -1);
+        return cal.getActualMaximum(Calendar.DATE);
+    }
+    /**鑾峰彇鏈堜唤鐨勫ぉ鏁�
+     * @param year 骞翠唤
+     * @param month 鏈堜唤
+     * @return 鏈堜唤鐨勫ぉ鏁�
+     */
+    public static int getMonthDays(int year, int month) {
+        Calendar cal = Calendar.getInstance();
+        cal.set(Calendar.YEAR, year);
+        cal.set(Calendar.MONTH, (month - 1));
+        cal.set(Calendar.DATE, 1);
+        cal.roll(Calendar.DATE, -1);
+        return cal.getActualMaximum(Calendar.DATE);
+    }
+
+    /**鑾峰彇鏈堜唤鐨勫ぉ鏁�
+     * @param yearMonth 骞存湀
+     * @param format 鏃堕棿鏍煎紡
+     * @return
+     */
+    public static int getMonthDays(String yearMonth,String format) {
+        SimpleDateFormat sdf = new SimpleDateFormat(format);
+        Calendar calendar = Calendar.getInstance();
+        try {
+            calendar.setTime(sdf.parse(yearMonth));
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
+        return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
+    }
 }

--
Gitblit v1.8.0