中扬CRM客户关系管理系统
Junjie
2023-09-06 67f39351a5571b822f93c09e8c6e7986fe91e758
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
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;
        }
    }
 
}