From cff0c053baeb229a6c7a7794c061c179111e0b7f Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 31 八月 2023 10:46:12 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/zycrm' into zycrm

---
 src/main/java/com/zy/crm/manager/utils/TimeCalculatorUtils.java |  141 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 141 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/crm/manager/utils/TimeCalculatorUtils.java b/src/main/java/com/zy/crm/manager/utils/TimeCalculatorUtils.java
new file mode 100644
index 0000000..880a559
--- /dev/null
+++ b/src/main/java/com/zy/crm/manager/utils/TimeCalculatorUtils.java
@@ -0,0 +1,141 @@
+package com.zy.crm.manager.utils;
+
+import java.time.LocalDate;
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.ChronoUnit;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.TimeZone;
+
+public class TimeCalculatorUtils {
+
+    //鑾峰彇褰撳墠鏃堕棿鐨勫皬鏃舵暟锛�24灏忔椂鍒讹級锛�
+    public static int nowTimeHour(){
+        // 鑾峰彇褰撳墠鏃堕棿鎴�
+        long timestamp = System.currentTimeMillis();
+
+        // 鍒涘缓Date瀵硅薄锛屽苟璁剧疆鏃堕棿鎴�
+        Date date = new Date(timestamp);
+
+        // 鍒涘缓TimeZone瀵硅薄锛岃缃负涓浗鍖椾含鏃堕棿
+        TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
+
+        // 鍒涘缓Calendar瀵硅薄锛屽苟璁剧疆鏃跺尯
+        // 娉ㄦ剰锛欳alendar绫讳腑鐨勬湀浠芥槸浠�0寮�濮嬬殑锛屾墍浠ラ渶瑕佸噺鍘�1
+        java.util.Calendar calendar = java.util.Calendar.getInstance(timeZone);
+        calendar.setTime(date);
+
+        // 鑾峰彇褰撳墠灏忔椂鏁帮紙24灏忔椂鍒讹級
+        return calendar.get(java.util.Calendar.HOUR_OF_DAY);
+    }
+
+    //鑾峰彇褰撳ぉ灏忔椂鏁帮紙24灏忔椂鍒讹級涓浗鍖椾含鏃堕棿锛�
+    public static int timeTimeHour(Date date){
+        // 鍒涘缓TimeZone瀵硅薄锛岃缃负涓浗鍖椾含鏃堕棿
+        TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
+
+        // 鍒涘缓Calendar瀵硅薄锛屽苟璁剧疆鏃跺尯
+        // 娉ㄦ剰锛欳alendar绫讳腑鐨勬湀浠芥槸浠�0寮�濮嬬殑锛屾墍浠ラ渶瑕佸噺鍘�1
+        java.util.Calendar calendar = java.util.Calendar.getInstance(timeZone);
+        calendar.setTime(date);
+
+        // 鑾峰彇褰撳墠灏忔椂鏁帮紙24灏忔椂鍒讹級
+        return calendar.get(java.util.Calendar.HOUR_OF_DAY);
+    }
+
+    //鑾峰彇鍓嶄竴澶╃殑鏃ユ湡锛堟棩鏈熷ぉ鏁板噺涓�锛�
+    public static Date timeYesterday(Date date){
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.add(Calendar.DAY_OF_MONTH, -1);
+        return calendar.getTime();
+    }
+
+    //鑾峰彇骞存湀鏃�
+    public static String timeYestMonthDay(Date date){
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+
+        int year = calendar.get(Calendar.YEAR);
+        int month = calendar.get(Calendar.MONTH) + 1;  // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1
+        int day = calendar.get(Calendar.DAY_OF_MONTH);
+        return year+"骞�"+month+"鏈�"+day+"鏃�";
+    }
+
+    //鑾峰彇骞�
+    public static int timeYest(Date date){
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+
+        return calendar.get(Calendar.YEAR);
+    }
+
+    //鑾峰彇鏈�
+    public static int timeMonth(Date date){
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+
+        return calendar.get(Calendar.MONTH) + 1;
+    }
+
+    //鑾峰彇鏃�
+    public static int timeDay(Date date){
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+
+        return calendar.get(Calendar.DAY_OF_MONTH);
+    }
+    //鑾峰彇骞村樊寮�
+    public static int DifferenceYest(Date startDay,Date endDay){
+        int startYest = timeYest(startDay);
+        int endYest = timeYest(endDay);
+        return endYest-startYest;
+    }
+    //鑾峰彇鏈堝樊寮�
+    public static int DifferenceMonth(Date startDay,Date endDay){
+        int startMonth = timeMonth(startDay);
+        int endMonth = timeMonth(endDay);
+        return endMonth-startMonth;
+    }
+    //鑾峰彇澶╁樊寮�
+    public static int DifferenceDayInt(Date startDay,Date endDay){
+        return DifferenceDayLong(startDay,endDay).intValue();
+    }
+    //鑾峰彇澶╁樊寮�
+    public static Long DifferenceDayLong(Date startDay,Date endDay){
+
+        LocalDate a = LocalDate.of(timeYest(startDay), timeMonth(startDay), timeDay(startDay));
+        LocalDate b = LocalDate.of(timeYest(endDay), timeMonth(endDay), timeDay(endDay));
+
+        return ChronoUnit.DAYS.between(a, b)+1;
+    }
+    //鑾峰彇澶╁樊寮�
+    public static Double DifferenceDayMorningAfternoon(Date startDay,Date endDay,int startTime,int endTime){
+        double between = DifferenceDayLong(startDay, endDay).doubleValue();
+        if (startTime==2){
+            between = between-0.5;
+        }
+        if (endTime == 1){
+            between = between-0.5;
+        }
+        return between;
+    }
+
+    public static boolean CompareData(Date startDay,Date endDay){
+
+        // 灏嗘棩鏈熷瓧绗︿覆瑙f瀽涓篖ocalDate瀵硅薄
+        LocalDate a = LocalDate.of(timeYest(startDay), timeMonth(startDay), timeDay(startDay));
+        LocalDate b = LocalDate.of(timeYest(endDay), timeMonth(endDay), timeDay(endDay));
+
+        // 姣旇緝鏃ユ湡
+        if (a.isAfter(b)) {
+            return false;
+        } else if (a.isBefore(b)) {
+            return true;
+        } else {
+            return true;
+        }
+    }
+
+}

--
Gitblit v1.9.1