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