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;
|
}
|
}
|
|
}
|