2021-10-26 20:17:13 +08:00
|
|
|
|
package cn.com.tenlion.systemtask.utils;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Calendar操作Date
|
2021-10-28 20:33:47 +08:00
|
|
|
|
*
|
2021-10-26 20:17:13 +08:00
|
|
|
|
* @author renpc
|
|
|
|
|
*/
|
2021-10-28 20:33:47 +08:00
|
|
|
|
|
2021-10-30 15:15:07 +08:00
|
|
|
|
import cn.com.tenlion.systemtask.pojo.vos.distribute.DistributeVO;
|
|
|
|
|
|
2021-10-28 20:33:47 +08:00
|
|
|
|
import java.text.DateFormat;
|
2021-10-30 15:15:07 +08:00
|
|
|
|
import java.text.ParseException;
|
2021-10-26 20:17:13 +08:00
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
import java.util.Calendar;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class DateUtils {
|
|
|
|
|
|
|
|
|
|
/**设置初始值*/
|
|
|
|
|
private static Calendar cal;
|
2021-10-30 15:15:07 +08:00
|
|
|
|
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
2021-10-26 20:17:13 +08:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据当前系统时区定义Calendar
|
|
|
|
|
*/
|
|
|
|
|
static {
|
|
|
|
|
cal = Calendar.getInstance();
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-30 15:15:07 +08:00
|
|
|
|
/**
|
|
|
|
|
* 通过系统当前时间和上次下派任务时间做对比
|
|
|
|
|
* @param rateType
|
|
|
|
|
* @param nowTime
|
|
|
|
|
* @param sendTime
|
|
|
|
|
* @return
|
|
|
|
|
* @throws ParseException
|
|
|
|
|
*/
|
|
|
|
|
public static boolean isOverRateType(String rateType, String nowTime, String sendTime) throws ParseException {
|
|
|
|
|
DateRange dateRange;
|
|
|
|
|
boolean flag = false;
|
|
|
|
|
if("每天".equals(rateType)) {
|
|
|
|
|
int day = compareDate(nowTime, sendTime, 0);
|
|
|
|
|
if(day == 1) {
|
|
|
|
|
flag = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if("每周".equals(rateType)) {
|
|
|
|
|
int day = compareDate(nowTime, sendTime, 0);
|
|
|
|
|
if(day == 7) {
|
|
|
|
|
flag = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if("每月".equals(rateType)) {
|
|
|
|
|
int month = compareDate(nowTime, sendTime, 1);
|
|
|
|
|
if(month == 1) {
|
|
|
|
|
flag = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if("每季度".equals(rateType)) {
|
|
|
|
|
int month = compareDate(nowTime, sendTime, 1);
|
|
|
|
|
if(month == 3) {
|
|
|
|
|
flag = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if("每半年".equals(rateType)) {
|
|
|
|
|
int month = compareDate(nowTime, sendTime, 1);
|
|
|
|
|
if(month == 6) {
|
|
|
|
|
flag = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if("每年".equals(rateType)) {
|
|
|
|
|
int month = compareDate(nowTime, sendTime, 1);
|
|
|
|
|
if(month == 12) {
|
|
|
|
|
flag = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return flag;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据日期获取半年的时间范围
|
|
|
|
|
* @param date
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public static DateRange getHalfYearInterval(Date date) throws ParseException {
|
|
|
|
|
DateRange dateRange = new DateRange(null, null);
|
|
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
|
|
cal.setTime(date);
|
|
|
|
|
int year = cal.get(Calendar.YEAR);
|
|
|
|
|
int month = cal.get(Calendar.MONTH) + 1;
|
|
|
|
|
if(month > 6) {
|
|
|
|
|
cal.setTime(sdf.parse(year + "-07-01"));
|
|
|
|
|
dateRange.setStart(cal.getTime());
|
|
|
|
|
cal.setTime(sdf.parse(year + "-12-31"));
|
|
|
|
|
dateRange.setEnd(cal.getTime());
|
|
|
|
|
}else {
|
|
|
|
|
cal.setTime(sdf.parse(year + "-01-01"));
|
|
|
|
|
dateRange.setStart(cal.getTime());
|
|
|
|
|
cal.setTime(sdf.parse(year + "-06-30"));
|
|
|
|
|
dateRange.setEnd(cal.getTime());
|
|
|
|
|
}
|
|
|
|
|
return dateRange;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据日期获取年的时间范围
|
|
|
|
|
* @param date
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public static DateRange getYearInterval(Date date) throws ParseException {
|
|
|
|
|
DateRange dateRange = new DateRange(null, null);
|
|
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
|
|
cal.setTime(date);
|
|
|
|
|
int year = cal.get(Calendar.YEAR);
|
|
|
|
|
cal.setTime(sdf.parse(year + "-01-01"));
|
|
|
|
|
dateRange.setStart(cal.getTime());
|
|
|
|
|
cal.setTime(sdf.parse(year + "-12-31"));
|
|
|
|
|
dateRange.setEnd(cal.getTime());
|
|
|
|
|
return dateRange;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据当前日期获得所在周的日期区间(周一和周日日期)
|
|
|
|
|
*
|
|
|
|
|
* @return
|
|
|
|
|
* @author renpc
|
|
|
|
|
*/
|
|
|
|
|
public static DateRange getTimeInterval(Date date) {
|
|
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
|
|
cal.setTime(date);
|
|
|
|
|
int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 得到当前日期是一个星期的第几天
|
|
|
|
|
if (1 == dayWeek) {
|
|
|
|
|
cal.add(Calendar.DAY_OF_MONTH, -1);
|
|
|
|
|
}
|
|
|
|
|
cal.setFirstDayOfWeek(Calendar.MONDAY);
|
|
|
|
|
int day = cal.get(Calendar.DAY_OF_WEEK);
|
|
|
|
|
cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);
|
|
|
|
|
DateRange dateRange = new DateRange(cal.getTime(), null);
|
|
|
|
|
cal.add(Calendar.DATE, 6);
|
|
|
|
|
dateRange.setEnd(cal.getTime());
|
|
|
|
|
return dateRange;
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-28 20:33:47 +08:00
|
|
|
|
/**
|
|
|
|
|
* 比较两个日期是否相等
|
|
|
|
|
* @param startDate
|
|
|
|
|
* @param endDate
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public static boolean DateEqual(Date startDate, Date endDate) {
|
|
|
|
|
String startTime = sdf.format(startDate);
|
|
|
|
|
String endTime = sdf.format(endDate);
|
|
|
|
|
if(startTime.equals(endTime)) {
|
|
|
|
|
return true;
|
|
|
|
|
}else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-26 20:17:13 +08:00
|
|
|
|
/**
|
|
|
|
|
* 获取date的月份的时间范围
|
|
|
|
|
* @param date
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public static DateRange getMonthRange(Date date) {
|
|
|
|
|
Calendar startCalendar = Calendar.getInstance();
|
|
|
|
|
startCalendar.setTime(date);
|
|
|
|
|
startCalendar.set(Calendar.DAY_OF_MONTH, 1);
|
|
|
|
|
setMaxTime(startCalendar);
|
|
|
|
|
|
|
|
|
|
Calendar endCalendar = Calendar.getInstance();
|
|
|
|
|
endCalendar.setTime(date);
|
|
|
|
|
endCalendar.set(Calendar.DAY_OF_MONTH, endCalendar.getActualMaximum(Calendar.DAY_OF_MONTH));
|
|
|
|
|
setMaxTime(endCalendar);
|
|
|
|
|
|
|
|
|
|
return new DateRange(startCalendar.getTime(), endCalendar.getTime());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据指定日期获取当前属于第几个季度
|
|
|
|
|
* @param date
|
|
|
|
|
*/
|
2021-10-28 20:33:47 +08:00
|
|
|
|
public static int getNowQuarter(Date date) {
|
2021-10-26 20:17:13 +08:00
|
|
|
|
cal.setTime(date);
|
|
|
|
|
int month = cal.get(Calendar.MONTH) + 1;
|
|
|
|
|
int quarter = 0;
|
|
|
|
|
//判断季度
|
|
|
|
|
if (month >= 1 && month <= 3) {
|
|
|
|
|
quarter = 1;
|
|
|
|
|
} else if (month >= 4 && month <= 6) {
|
|
|
|
|
quarter = 2;
|
|
|
|
|
} else if (month >= 7 && month <= 9) {
|
|
|
|
|
quarter = 3;
|
|
|
|
|
} else {
|
|
|
|
|
quarter = 4;
|
|
|
|
|
}
|
|
|
|
|
return quarter;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取当前季度的时间范围
|
|
|
|
|
* @return current quarter
|
|
|
|
|
*/
|
|
|
|
|
public static DateRange returnQuarterCurrent(int year, int quarter) {
|
|
|
|
|
Calendar startCalendar = Calendar.getInstance();
|
|
|
|
|
Calendar endCalendar = Calendar.getInstance();
|
2021-10-28 20:33:47 +08:00
|
|
|
|
if (quarter == 1) {
|
|
|
|
|
startCalendar.set(year, 1 - 1, 1, 00, 00, 00);
|
|
|
|
|
endCalendar.set(year, 3 - 1, 31, 23, 59, 59);
|
|
|
|
|
} else if (quarter == 2) {
|
|
|
|
|
startCalendar.set(year, 4 - 1, 1, 00, 00, 00);
|
|
|
|
|
endCalendar.set(year, 6 - 1, 30, 23, 59, 59);
|
|
|
|
|
} else if (quarter == 3) {
|
|
|
|
|
startCalendar.set(year, 7 - 1, 1, 00, 00, 00);
|
|
|
|
|
endCalendar.set(year, 9 - 1, 30, 23, 59, 59);
|
|
|
|
|
} else {
|
|
|
|
|
startCalendar.set(year, 10 - 1, 1, 00, 00, 00);
|
|
|
|
|
endCalendar.set(year, 12 - 1, 31, 23, 59, 59);
|
|
|
|
|
}
|
2021-10-26 20:17:13 +08:00
|
|
|
|
return new DateRange(startCalendar.getTime(), endCalendar.getTime());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取当前季度的时间范围
|
|
|
|
|
* @return current quarter
|
|
|
|
|
*/
|
2021-10-30 15:15:07 +08:00
|
|
|
|
public static DateRange getThisQuarter() {
|
2021-10-26 20:17:13 +08:00
|
|
|
|
Calendar startCalendar = Calendar.getInstance();
|
|
|
|
|
startCalendar.set(Calendar.MONTH, ((int) startCalendar.get(Calendar.MONTH) / 3) * 3);
|
|
|
|
|
startCalendar.set(Calendar.DAY_OF_MONTH, 1);
|
|
|
|
|
setMinTime(startCalendar);
|
|
|
|
|
|
|
|
|
|
Calendar endCalendar = Calendar.getInstance();
|
|
|
|
|
endCalendar.set(Calendar.MONTH, ((int) startCalendar.get(Calendar.MONTH) / 3) * 3 + 2);
|
|
|
|
|
endCalendar.set(Calendar.DAY_OF_MONTH, endCalendar.getActualMaximum(Calendar.DAY_OF_MONTH));
|
|
|
|
|
setMaxTime(endCalendar);
|
|
|
|
|
|
|
|
|
|
return new DateRange(startCalendar.getTime(), endCalendar.getTime());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取昨天的时间范围
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public static DateRange getYesterdayRange() {
|
|
|
|
|
Calendar startCalendar = Calendar.getInstance();
|
|
|
|
|
startCalendar.add(Calendar.DAY_OF_MONTH, -1);
|
|
|
|
|
setMinTime(startCalendar);
|
|
|
|
|
|
|
|
|
|
Calendar endCalendar = Calendar.getInstance();
|
|
|
|
|
endCalendar.add(Calendar.DAY_OF_MONTH, -1);
|
|
|
|
|
setMaxTime(endCalendar);
|
|
|
|
|
|
|
|
|
|
return new DateRange(startCalendar.getTime(), endCalendar.getTime());
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-30 15:15:07 +08:00
|
|
|
|
/**
|
|
|
|
|
* 获取今天的时间范围
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public static DateRange getTodayRange() {
|
|
|
|
|
Calendar startCalendar = Calendar.getInstance();
|
|
|
|
|
startCalendar.add(Calendar.DAY_OF_MONTH, 0);
|
|
|
|
|
setMinTime(startCalendar);
|
|
|
|
|
|
|
|
|
|
Calendar endCalendar = Calendar.getInstance();
|
|
|
|
|
endCalendar.add(Calendar.DAY_OF_MONTH, 0);
|
|
|
|
|
setMaxTime(endCalendar);
|
|
|
|
|
|
|
|
|
|
return new DateRange(startCalendar.getTime(), endCalendar.getTime());
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-26 20:17:13 +08:00
|
|
|
|
/**
|
|
|
|
|
* 获取当前月份的时间范围
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
2021-10-28 20:33:47 +08:00
|
|
|
|
public static DateRange getThisMonth() {
|
2021-10-26 20:17:13 +08:00
|
|
|
|
Calendar startCalendar = Calendar.getInstance();
|
|
|
|
|
startCalendar.set(Calendar.DAY_OF_MONTH, 1);
|
|
|
|
|
setMinTime(startCalendar);
|
|
|
|
|
|
|
|
|
|
Calendar endCalendar = Calendar.getInstance();
|
|
|
|
|
endCalendar.set(Calendar.DAY_OF_MONTH, endCalendar.getActualMaximum(Calendar.DAY_OF_MONTH));
|
|
|
|
|
setMaxTime(endCalendar);
|
|
|
|
|
|
|
|
|
|
return new DateRange(startCalendar.getTime(), endCalendar.getTime());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取上个月的时间范围
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
2021-10-28 20:33:47 +08:00
|
|
|
|
public static DateRange getLastMonth() {
|
2021-10-26 20:17:13 +08:00
|
|
|
|
Calendar startCalendar = Calendar.getInstance();
|
|
|
|
|
startCalendar.add(Calendar.MONTH, -1);
|
|
|
|
|
startCalendar.set(Calendar.DAY_OF_MONTH, 1);
|
|
|
|
|
setMinTime(startCalendar);
|
|
|
|
|
|
|
|
|
|
Calendar endCalendar = Calendar.getInstance();
|
|
|
|
|
endCalendar.add(Calendar.MONTH, -1);
|
|
|
|
|
endCalendar.set(Calendar.DAY_OF_MONTH, endCalendar.getActualMaximum(Calendar.DAY_OF_MONTH));
|
|
|
|
|
setMaxTime(endCalendar);
|
|
|
|
|
|
|
|
|
|
return new DateRange(startCalendar.getTime(), endCalendar.getTime());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2021-10-28 20:33:47 +08:00
|
|
|
|
* 获取指定当前年份月的时间范围
|
2021-10-26 20:17:13 +08:00
|
|
|
|
* month:-1是前一个月,-2是前二个月。+1是推后一个月。以此类推
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
2021-10-28 20:33:47 +08:00
|
|
|
|
public static DateRange getAppointMonth(int month) {
|
2021-10-26 20:17:13 +08:00
|
|
|
|
Calendar startCalendar = Calendar.getInstance();
|
|
|
|
|
startCalendar.add(Calendar.MONTH, month);
|
|
|
|
|
startCalendar.set(Calendar.DAY_OF_MONTH, 1);
|
|
|
|
|
setMinTime(startCalendar);
|
|
|
|
|
|
|
|
|
|
Calendar endCalendar = Calendar.getInstance();
|
|
|
|
|
endCalendar.add(Calendar.MONTH, month);
|
|
|
|
|
endCalendar.set(Calendar.DAY_OF_MONTH, endCalendar.getActualMaximum(Calendar.DAY_OF_MONTH));
|
|
|
|
|
setMaxTime(endCalendar);
|
|
|
|
|
|
|
|
|
|
return new DateRange(startCalendar.getTime(), endCalendar.getTime());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取上个季度的时间范围
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public static DateRange getLastQuarter() {
|
|
|
|
|
Calendar startCalendar = Calendar.getInstance();
|
|
|
|
|
startCalendar.set(Calendar.MONTH, ((int) startCalendar.get(Calendar.MONTH) / 3 - 1) * 3);
|
|
|
|
|
startCalendar.set(Calendar.DAY_OF_MONTH, 1);
|
|
|
|
|
setMinTime(startCalendar);
|
|
|
|
|
|
|
|
|
|
Calendar endCalendar = Calendar.getInstance();
|
|
|
|
|
endCalendar.set(Calendar.MONTH, ((int) endCalendar.get(Calendar.MONTH) / 3 - 1) * 3 + 2);
|
|
|
|
|
endCalendar.set(Calendar.DAY_OF_MONTH, endCalendar.getActualMaximum(Calendar.DAY_OF_MONTH));
|
|
|
|
|
setMaxTime(endCalendar);
|
|
|
|
|
|
|
|
|
|
return new DateRange(startCalendar.getTime(), endCalendar.getTime());
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-28 20:33:47 +08:00
|
|
|
|
/**
|
|
|
|
|
* @param date1 需要比较的时间 不能为空(null),需要正确的日期格式
|
|
|
|
|
* @param date2 被比较的时间 为空(null)则为当前时间
|
|
|
|
|
* @param stype 返回值类型 0为多少天,1为多少个月,2为多少年
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public static int compareDate(String date1, String date2, int stype) {
|
|
|
|
|
int n = 0;
|
|
|
|
|
|
|
|
|
|
String[] u = {"天", "月", "年"};
|
|
|
|
|
String formatStyle = stype == 1 ? "yyyy-MM" : "yyyy-MM-dd";
|
|
|
|
|
|
|
|
|
|
date2 = date2 == null ? DateUtils.getCurrentDate() : date2;
|
|
|
|
|
|
|
|
|
|
DateFormat df = new SimpleDateFormat(formatStyle);
|
|
|
|
|
Calendar c1 = Calendar.getInstance();
|
|
|
|
|
Calendar c2 = Calendar.getInstance();
|
|
|
|
|
try {
|
|
|
|
|
c1.setTime(df.parse(date1));
|
|
|
|
|
c2.setTime(df.parse(date2));
|
|
|
|
|
} catch (Exception e3) {
|
|
|
|
|
System.out.println("wrong occured");
|
|
|
|
|
}
|
|
|
|
|
// 循环对比,直到相等,n 就是所要的结果
|
|
|
|
|
while (!c1.after(c2)) {
|
|
|
|
|
n++;
|
|
|
|
|
if (stype == 1) {
|
|
|
|
|
// 比较月份,月份+1
|
|
|
|
|
c1.add(Calendar.MONTH, 1);
|
|
|
|
|
} else {
|
|
|
|
|
// 比较天数,日期+1
|
|
|
|
|
c1.add(Calendar.DATE, 1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
n = n - 1;
|
|
|
|
|
|
|
|
|
|
if (stype == 2) {
|
|
|
|
|
n = (int) n / 365;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
System.out.println(date1 + " -- " + date2 + " 相差多少" + u[stype] + ":" + n);
|
|
|
|
|
return n;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 得到当前日期
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public static String getCurrentDate() {
|
|
|
|
|
Calendar c = Calendar.getInstance();
|
|
|
|
|
Date date = c.getTime();
|
|
|
|
|
SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
return simple.format(date);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static void setMinTime(Calendar calendar) {
|
2021-10-26 20:17:13 +08:00
|
|
|
|
calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
|
|
calendar.set(Calendar.MINUTE, 0);
|
|
|
|
|
calendar.set(Calendar.SECOND, 0);
|
|
|
|
|
calendar.set(Calendar.MILLISECOND, 0);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-28 20:33:47 +08:00
|
|
|
|
private static void setMaxTime(Calendar calendar) {
|
2021-10-26 20:17:13 +08:00
|
|
|
|
calendar.set(Calendar.HOUR_OF_DAY, calendar.getActualMaximum(Calendar.HOUR_OF_DAY));
|
|
|
|
|
calendar.set(Calendar.MINUTE, calendar.getActualMaximum(Calendar.MINUTE));
|
|
|
|
|
calendar.set(Calendar.SECOND, calendar.getActualMaximum(Calendar.SECOND));
|
|
|
|
|
calendar.set(Calendar.MILLISECOND, calendar.getActualMaximum(Calendar.MILLISECOND));
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-30 15:15:07 +08:00
|
|
|
|
/**
|
|
|
|
|
* 设置日期时间为23时59分59秒
|
|
|
|
|
* @param calendar
|
|
|
|
|
*/
|
|
|
|
|
private static void setEndTime(Calendar calendar) {
|
|
|
|
|
calendar.set(Calendar.HOUR_OF_DAY, 23);
|
|
|
|
|
calendar.set(Calendar.MINUTE, 59);
|
|
|
|
|
calendar.set(Calendar.SECOND, 59);
|
|
|
|
|
calendar.set(Calendar.MILLISECOND, 999);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-26 20:17:13 +08:00
|
|
|
|
|
|
|
|
|
public final static String DEFAULT_PATTERN = "MM/dd/yyyy HH:mm:ss";
|
2021-10-28 20:33:47 +08:00
|
|
|
|
|
|
|
|
|
public static String format(Date date) {
|
2021-10-26 20:17:13 +08:00
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat(DEFAULT_PATTERN);
|
|
|
|
|
return sdf.format(date);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-30 15:15:07 +08:00
|
|
|
|
public static boolean dateBig(String startTime, String endTime) throws ParseException {
|
|
|
|
|
// 设置允许误差时间为五分钟
|
|
|
|
|
long errorTime = 5 * 60 * 1000;
|
|
|
|
|
SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
Date startDate = df1.parse(startTime);
|
|
|
|
|
Date endDate = df1.parse(endTime);
|
|
|
|
|
boolean flag = startDate.getTime() > endDate.getTime();
|
|
|
|
|
if(flag) {
|
|
|
|
|
startDate = new Date(startDate.getTime() - errorTime);
|
|
|
|
|
flag = startDate.getTime() > endDate.getTime();
|
2021-10-28 20:33:47 +08:00
|
|
|
|
}
|
2021-10-30 15:15:07 +08:00
|
|
|
|
return flag;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) throws ParseException {
|
|
|
|
|
System.out.println(isOverRateType("每天", "2021-11-01 12:25:33", "2021-10-28 20:22:12"));
|
2021-10-26 20:17:13 +08:00
|
|
|
|
}
|
|
|
|
|
}
|