中扬CRM客户关系管理系统
Junjie
2023-08-31 cff0c053baeb229a6c7a7794c061c179111e0b7f
src/main/java/com/zy/crm/manager/utils/TimeCalculatorUtils.java
New file
@@ -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对象,并设置时区
        // 注意:Calendar类中的月份是从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对象,并设置时区
        // 注意:Calendar类中的月份是从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){
        // 将日期字符串解析为LocalDate对象
        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;
        }
    }
}