From bd9a7f2d97af968d43ccd5516644f6933b42f5b2 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Thu, 30 Dec 2021 11:47:59 +0800
Subject: [PATCH] screen-api            增加城市优良天气对比接口

---
 screen-common/src/main/java/com/moral/util/DateUtils.java | 2854 +++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 1,693 insertions(+), 1,161 deletions(-)

diff --git a/screen-common/src/main/java/com/moral/util/DateUtils.java b/screen-common/src/main/java/com/moral/util/DateUtils.java
index 69f256d..439c5d2 100644
--- a/screen-common/src/main/java/com/moral/util/DateUtils.java
+++ b/screen-common/src/main/java/com/moral/util/DateUtils.java
@@ -1,7 +1,7 @@
 package com.moral.util;
 
 
-
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.util.StringUtils;
 
 import java.math.BigDecimal;
@@ -14,1254 +14,1786 @@
 import java.time.ZonedDateTime;
 import java.util.*;
 
-
+@Slf4j
 public class DateUtils {
-	/** ������������(yyyy-MM-dd) */
-	public static final String yyyy_MM_dd_EN = "yyyy-MM-dd";
-	/** ������������(yyyy/MM/dd) */
-	public static final String yyyy_MM_dd_decline = "yyyy/MM/dd";
-	/** ������������(yyyyMMdd) */
-	public static final String yyyyMMdd_EN = "yyyyMMdd";
-	/** ������������(yyyy-MM) */
-	public static final String yyyy_MM_EN = "yyyy-MM";
-	/** ������������(yyyyMM) */
-	public static final String yyyyMM_EN = "yyyyMM";
-	/** ������������(yyyy-MM-dd HH:mm:ss) */
-	public static final String yyyy_MM_dd_HH_mm_ss_EN = "yyyy-MM-dd HH:mm:ss";
-	/** ������������(yyyy-MM-dd HH:mm:ss.S) */
-	public static final String yyyy_MM_dd_HH_mm_ss_S_EN = "yyyy-MM-dd HH:mm:ss.S";
-	/** ������������(yyyyMMddHHmmss) */
-	public static final String yyyyMMddHHmmss_EN = "yyyyMMddHHmmss";
-	/** ������������(yyyy���MM���dd���) */
-	public static final String yyyy_MM_dd_CN = "yyyy���MM���dd���";
-	/** ������������(yyyy���MM���dd���HH���mm���ss���) */
-	public static final String yyyy_MM_dd_HH_mm_ss_CN = "yyyy���MM���dd���HH���mm���ss���";
-	/** ������������(yyyy���MM���dd���HH���mm���) */
-	public static final String yyyy_MM_dd_HH_mm_CN = "yyyy���MM���dd���HH���mm���";
-	/** ������boss��������������������������������� */
-	public static final String BJBOSS_DATE = "yyyy-MM-dd'T'HH:mm:ss'Z'";
-	/** ������������(HH:mm:ss) */
-	public static final String HH_mm_ss_EN = "HH:mm:ss";
-	/** DateFormat������ */
-	private static Map<String, DateFormat> dateFormatMap = new HashMap<String, DateFormat>();
+    /**
+     * ������������(yyyy)
+     */
+    public static final String yyyy = "yyyy";
+    /**
+     * ������������(yyyy-MM-dd)
+     */
+    public static final String yyyy_MM_dd_EN = "yyyy-MM-dd";
+    /**
+     * ������������(yyyy/MM/dd)
+     */
+    public static final String yyyy_MM_dd_decline = "yyyy/MM/dd";
+    /**
+     * ������������(yyyyMMdd)
+     */
+    public static final String yyyyMMdd_EN = "yyyyMMdd";
+    /**
+     * ������������(yyyy-MM)
+     */
+    public static final String yyyy_MM_EN = "yyyy-MM";
+    /**
+     * ������������(yyyyMM)
+     */
+    public static final String yyyyMM_EN = "yyyyMM";
+    /**
+     * ������������(yyyy-MM-dd HH:mm:ss)
+     */
+    public static final String yyyy_MM_dd_HH_mm_ss_EN = "yyyy-MM-dd HH:mm:ss";
+    /**
+     * ������������(yyyy-MM-dd HH:mm:ss.S)
+     */
+    public static final String yyyy_MM_dd_HH_mm_ss_S_EN = "yyyy-MM-dd HH:mm:ss.S";
+    /**
+     * ������������(yyyyMMddHHmmss)
+     */
+    public static final String yyyyMMddHHmmss_EN = "yyyyMMddHHmmss";
+    /**
+     * ������������(yyyy���MM���dd���)
+     */
+    public static final String yyyy_MM_dd_CN = "yyyy���MM���dd���";
+    /**
+     * ������������(yyyy���MM���dd���HH���mm���ss���)
+     */
+    public static final String yyyy_MM_dd_HH_mm_ss_CN = "yyyy���MM���dd���HH���mm���ss���";
+    /**
+     * ������������(yyyy���MM���dd���HH���mm���)
+     */
+    public static final String yyyy_MM_dd_HH_mm_CN = "yyyy���MM���dd���HH���mm���";
+    /**
+     * ������boss���������������������������������
+     */
+    public static final String BJBOSS_DATE = "yyyy-MM-dd'T'HH:mm:ss'Z'";
+    /**
+     * ������������(HH:mm:ss)
+     */
+    public static final String HH_mm_ss_EN = "HH:mm:ss";
+    /*
+     * ������������(yyyy-MM-dd HH:mm)
+     * */
+    public static final String yyyy_MM_dd_HH_mm_EN = "yyyy-MM-dd HH:mm";
+    /*
+     * ������������(yyyy-MM-dd HH)
+     * */
+    public static final String yyyy_MM_dd_HH_EN = "yyyy-MM-dd HH";
 
-	/**
-	 * ������DateFormat
-	 * 
-	 * @param formatStr
-	 * @return
-	 */
-	public static DateFormat getDateFormat(String formatStr) {
-		DateFormat df = dateFormatMap.get(formatStr);
-		if (df == null) {
-			df = new SimpleDateFormat(formatStr);
-			dateFormatMap.put(formatStr, df);
-		}
-		return df;
-	}
+    /*
+     * Date���toString������
+     * */
+    public static final String EEE_MMM_dd_HH_mm_ss_zzz_yyyy = "EEE MMM dd HH:mm:ss zzz yyyy";
+    /**
+     * DateFormat������
+     */
+    private static Map<String, DateFormat> dateFormatMap = new HashMap<String, DateFormat>();
 
-	public static Date getDate() {
-		return Calendar.getInstance().getTime();
-	}
 
-	/**
-	 * ������������formatStr������������������dateTimeStr���Date������ dateTimeStr���������formatStr���������
-	 * 
-	 * @param dateTimeStr
-	 * @param formatStr
-	 * @return
-	 */
-	public static Date getDate(String dateTimeStr, String formatStr) {
-		try {
-			if (dateTimeStr == null || dateTimeStr.equals("")) {
-				return null;
-			}
-			DateFormat sdf = getDateFormat(formatStr);
-			return sdf.parse(dateTimeStr);
-		} catch (ParseException e) {
-			throw new RuntimeException(e);
-		}
-	}
+    /**
+     * @Description: ���������������������������������
+     * @Param: [date]
+     * @return: java.util.Date
+     * @Author: ���������
+     * @Date: 2021/9/26
+     */
+    public static Date getHourlyStartTime(Date date) {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        cal.set(Calendar.MINUTE, 0);
+        cal.set(Calendar.SECOND, 0);
+        cal.set(Calendar.MILLISECOND, 0);
+        return cal.getTime();
+    }
 
-	/**
-	 * ������dateTimeStr���Date������
-	 * 
-	 * @param dateTimeStr
-	 * @return
-	 */
-	public static Date convertDate(String dateTimeStr) {
-		try {
-			if (dateTimeStr == null || dateTimeStr.equals("")) {
-				return null;
-			}
-			DateFormat sdf = getDateFormat(yyyy_MM_dd_EN);
-			Date d = sdf.parse(dateTimeStr);
-			return d;
-		} catch (ParseException e) {
-			throw new RuntimeException(e);
-		}
-	}
+    /**
+     * @Description: ���������������������������������
+     * @Param: [date]
+     * @return: java.util.Date
+     * @Author: ���������
+     * @Date: 2021/9/26
+     */
+    public static Date getHourlyEndTime(Date date) {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        cal.set(Calendar.MINUTE, 59);
+        cal.set(Calendar.SECOND, 59);
+        cal.set(Calendar.MILLISECOND, 0);
+        return cal.getTime();
+    }
 
-	/**
-	 * ���������������������������������������"yyyy-MM-dd"���������dateTimeStr���Date������ dateTimeStr���������"yyyy-MM-dd"���������
-	 * 
-	 * @param dateTimeStr
-	 * @return
-	 */
-	public static Date getDate(String dateTimeStr) {
-		return getDate(dateTimeStr, yyyy_MM_dd_EN);
-	}
+    /**
+     * @Description: ������������������������������������
+     * @Param: [date]
+     * @return: java.util.List<java.util.Date>
+     * @Author: ���������
+     * @Date: 2021/9/8
+     */
+    public static Date getDailyStartTime(Date date) {
+        String dateStr = dateToDateString(date, "yyyy-MM-dd");
+        String startDateStr = dateStr + " 00:00:00";
+        Date startDate = getDate(startDateStr, "yyyy-MM-dd HH:mm:ss");
+        return startDate;
+    }
 
-	/**
-	 * ���YYYYMMDD���������Date������
-	 * 
-	 * @param date
-	 * @return
-	 * @throws Exception
-	 */
-	public static Date transferDate(String date) throws Exception {
-		if (date == null || date.length() < 1)
-			return null;
+    /**
+     * @Description: ���������������������������������������
+     * @Param: [date]
+     * @return: java.util.Date
+     * @Author: ���������
+     * @Date: 2021/9/26
+     */
+    public static Date getDailyEndTime(Date date) {
+        String dateStr = dateToDateString(date, "yyyy-MM-dd");
+        String endDateStr = dateStr + " 23:59:59";
+        Date endDate = getDate(endDateStr, "yyyy-MM-dd HH:mm:ss");
+        return endDate;
+    }
 
-		if (date.length() != 8)
-			throw new Exception("������������������");
-		String con = "-";
 
-		String yyyy = date.substring(0, 4);
-		String mm = date.substring(4, 6);
-		String dd = date.substring(6, 8);
+    /**
+     * @Description: ���������������������������������������������������
+     * @Param: [date]
+     * @return: java.util.Date
+     * @Author: ���������
+     * @Date: 2021/9/26
+     */
+    public static Date getWeeklyStartTime(Date date) {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        if (1 == cal.get(Calendar.DAY_OF_WEEK)) {
+            cal.add(Calendar.DAY_OF_MONTH, -1);
+        }
+        cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+        cal.set(Calendar.HOUR_OF_DAY, 0);
+        cal.set(Calendar.MINUTE, 0);
+        cal.set(Calendar.SECOND, 0);
+        cal.set(Calendar.MILLISECOND, 0);
+        return cal.getTime();
+    }
 
-		int month = Integer.parseInt(mm);
-		int day = Integer.parseInt(dd);
-		if (month < 1 || month > 12 || day < 1 || day > 31)
-			throw new Exception("������������������");
+    /**
+     * @Description: ���������������������������������������������������������
+     * @Param: [date]
+     * @return: java.util.Date
+     * @Author: ���������
+     * @Date: 2021/9/26
+     */
+    public static Date getWeeklyEndTime(Date date) {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        if (1 != cal.get(Calendar.DAY_OF_WEEK)) {
+            cal.add(Calendar.DAY_OF_MONTH, 7);
+        }
+        cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
+        cal.set(Calendar.HOUR_OF_DAY, 23);
+        cal.set(Calendar.MINUTE, 59);
+        cal.set(Calendar.SECOND, 59);
+        cal.set(Calendar.MILLISECOND, 0);
+        return cal.getTime();
+    }
 
-		String str = yyyy + con + mm + con + dd;
-		return getDate(str, yyyy_MM_dd_EN);
-	}
+    /**
+     * @Description: ���������������������������������������������������
+     * @Param: [date]
+     * @return: java.util.Date
+     * @Author: ���������
+     * @Date: 2021/9/26
+     */
+    public static Date getMonthlyStartTime(Date date) {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
+        cal.set(Calendar.HOUR_OF_DAY, 0);
+        cal.set(Calendar.MINUTE, 0);
+        cal.set(Calendar.SECOND, 0);
+        cal.set(Calendar.MILLISECOND, 0);
+        return cal.getTime();
+    }
 
-	/**
-	 * ���Date���������������������yyyy-mm-dd hh:mm:ss���������������
-	 * 
-	 * @param date
-	 * @return
-	 */
-	public static String dateToDateString(Date date) {
-		return dateToDateString(date, yyyy_MM_dd_HH_mm_ss_EN);
-	}
+    /**
+     * @Description: ���������������������������������������������������������
+     * @Param: [date]
+     * @return: java.util.Date
+     * @Author: ���������
+     * @Date: 2021/9/26
+     */
+    public static Date getMonthlyEndTime(Date date) {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
+        cal.set(Calendar.HOUR_OF_DAY, 23);
+        cal.set(Calendar.MINUTE, 59);
+        cal.set(Calendar.SECOND, 59);
+        cal.set(Calendar.MILLISECOND, 0);
+        return cal.getTime();
+    }
 
-	/**
-	 * ���Date���������������������yyyymmddhhmmss���������������
-	 * 
-	 * @param date
-	 * @return
-	 */
-	public static String dateToDateFullString(Date date) {
-		if (null == date)
-			return null;
-		else
-			return dateToDateString(date, yyyyMMddHHmmss_EN);
-	}
 
-	/**
-	 * ���Date���������formatStr������������������
-	 * 
-	 * @param date
-	 * @param formatStr
-	 * @return
-	 */
-	public static String dateToDateString(Date date, String formatStr) {
-		DateFormat df = getDateFormat(formatStr);
-		return df.format(date);
-	}
+    /**
+     * @Description: Date���toString������������Date
+     * @Param: []
+     * @return: java.util.Date
+     * @Author: ���������
+     * @Date: 2021/8/25
+     */
+    public static Date dateStringToDate(String formatStr) {
+        try {
+            SimpleDateFormat sdf = new SimpleDateFormat(EEE_MMM_dd_HH_mm_ss_zzz_yyyy, Locale.US);
+            return sdf.parse(formatStr);
+        } catch (ParseException e) {
+            log.error(e.getMessage());
+            return null;
+        }
+    }
 
-	/**
-	 * ���String���������formatStr������������������
-	 * 
-	 * @param date
-	 * @param formatStr1
-	 * @param formatStr2
-	 * @return
-	 */
-	public static String stringToDateString(String date, String formatStr1, String formatStr2) {
-		Date d = getDate(date, formatStr1);
-		DateFormat df = getDateFormat(formatStr2);
-		return df.format(d);
-	}
+    /**
+     * ������DateFormat
+     *
+     * @param formatStr
+     * @return
+     */
+    public static DateFormat getDateFormat(String formatStr) {
+        DateFormat df = dateFormatMap.get(formatStr);
+        if (df == null) {
+            df = new SimpleDateFormat(formatStr);
+            dateFormatMap.put(formatStr, df);
+        }
+        return df;
+    }
 
-	/**
-	 * ������������������yyyy-MM-dd���������
-	 * 
-	 * @return
-	 */
-	public static String getCurDate() {
-		return dateToDateString(new Date(), yyyy_MM_dd_EN);
-	}
+    public static Date getDate() {
+        return Calendar.getInstance().getTime();
+    }
 
-	/**
-	 * ������������������
-	 * 
-	 * @return
-	 */
-	public static String getCurDate(String formatStr) {
-		return dateToDateString(new Date(), formatStr);
-	}
+    /**
+     * ������������formatStr������������������dateTimeStr���Date������ dateTimeStr���������formatStr���������
+     *
+     * @param dateTimeStr
+     * @param formatStr
+     * @return
+     */
+    public static Date getDate(String dateTimeStr, String formatStr) {
+        try {
+            if (dateTimeStr == null || dateTimeStr.equals("")) {
+                return null;
+            }
+            DateFormat sdf = getDateFormat(formatStr);
+            return sdf.parse(dateTimeStr);
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
+    }
 
-	/**
-	 * ������������������yyyy���MM���dd������������
-	 * 
-	 * @return
-	 */
-	public static String getCurCNDate() {
-		return dateToDateString(new Date(), yyyy_MM_dd_CN);
-	}
+    /**
+     * ������dateTimeStr���Date������
+     *
+     * @param dateTimeStr
+     * @return
+     */
+    public static Date convertDate(String dateTimeStr) {
+        try {
+            if (dateTimeStr == null || dateTimeStr.equals("")) {
+                return null;
+            }
+            DateFormat sdf = getDateFormat(yyyy_MM_dd_EN);
+            Date d = sdf.parse(dateTimeStr);
+            return d;
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
+    }
 
-	/**
-	 * ������������������������yyyy-MM-dd HH:mm:ss���������
-	 * 
-	 * @return
-	 */
-	public static String getCurDateTime() {
-		return dateToDateString(new Date(), yyyy_MM_dd_HH_mm_ss_EN);
-	}
+    /**
+     * ���������������������������������������"yyyy-MM-dd"���������dateTimeStr���Date������ dateTimeStr���������"yyyy-MM-dd"���������
+     *
+     * @param dateTimeStr
+     * @return
+     */
+    public static Date getDate(String dateTimeStr) {
+        return getDate(dateTimeStr, yyyy_MM_dd_EN);
+    }
 
-	/**
-	 * ������������������������yyyy���MM���dd���HH���mm���ss������������
-	 * 
-	 * @return
-	 */
-	public static String getCurZhCNDateTime() {
-		return dateToDateString(new Date(), yyyy_MM_dd_HH_mm_ss_CN);
-	}
+    /**
+     * ���YYYYMMDD���������Date������
+     *
+     * @param date
+     * @return
+     * @throws Exception
+     */
+    public static Date transferDate(String date) throws Exception {
+        if (date == null || date.length() < 1)
+            return null;
 
-	/**
-	 * ������������"yyyy-MM-dd HH:mm:ss"������������������������������������������,time2-time1
-	 * 
-	 * @param time1
-	 * @param time2
-	 * @return
-	 */
-	public static long compareDateStr(String time1, String time2) {
-		Date d1 = getDate(time1);
-		Date d2 = getDate(time2);
-		return d2.getTime() - d1.getTime();
-	}
+        if (date.length() != 8)
+            throw new Exception("������������������");
+        String con = "-";
 
-	/**
-	 * ���������������������������������������
-	 * 
-	 * @param time1
-	 * @param time2
-	 * @param format
-	 * @return
-	 */
-	public static long compareDateStr(String time1, String time2, String format) {
-		Date d1 = getDate(time1, format);
-		Date d2 = getDate(time2, format);
-		return d2.getTime() - d1.getTime();
-	}
+        String yyyy = date.substring(0, 4);
+        String mm = date.substring(4, 6);
+        String dd = date.substring(6, 8);
 
-	/**
-	 * ������������������������������������������������
-	 * 
-	 * @param time
-	 * @param format
-	 * @return
-	 */
-	public static long compareDateNow(String time, String format) {
-		Date date = getDate(time, format);
-		return new Date().getTime() - date.getTime();
-	}
+        int month = Integer.parseInt(mm);
+        int day = Integer.parseInt(dd);
+        if (month < 1 || month > 12 || day < 1 || day > 31)
+            throw new Exception("������������������");
 
-	/**
-	 * ������������"yyyy-MM-dd HH:mm:ss"������������������������������������������,time2-time1
-	 * 
-	 * @param time1
-	 * @param time2
-	 * @return
-	 */
-	public static long compareDateStr(Date time1, Date time2) {
-		return time2.getTime() - time1.getTime();
-	}
+        String str = yyyy + con + mm + con + dd;
+        return getDate(str, yyyy_MM_dd_EN);
+    }
 
-	/**
-	 * nows������������date������ ���true
-	 * 
-	 * @param nows
-	 * @param date
-	 * @return
-	 */
-	public static boolean isTimeBefor(Date nows, Date date) {
-		long hous = nows.getTime() - date.getTime();
-		if (hous > 0) {
-			return true;
-		} else {
-			return false;
-		}
-	}
+    /**
+     * ���Date���������������������yyyy-mm-dd hh:mm:ss���������������
+     *
+     * @param date
+     * @return
+     */
+    public static String dateToDateString(Date date) {
+        return dateToDateString(date, yyyy_MM_dd_HH_mm_ss_EN);
+    }
 
-	/**
-	 * ������������������������������������������������������
-	 * 
-	 * @param hours
-	 * @return
-	 */
-	public static long getMicroSec(BigDecimal hours) {
-		BigDecimal bd;
-		bd = hours.multiply(new BigDecimal(3600 * 1000));
-		return bd.longValue();
-	}
+    /**
+     * ���Date���������������������yyyymmddhhmmss���������������
+     *
+     * @param date
+     * @return
+     */
+    public static String dateToDateFullString(Date date) {
+        if (null == date)
+            return null;
+        else
+            return dateToDateString(date, yyyyMMddHHmmss_EN);
+    }
 
-	/**
-	 * ������������������years���������������(formatStr)������������
-	 * 
-	 * @param years
-	 * @param formatStr
-	 * @return
-	 */
-	public static String getDateStringOfYear(int years, String formatStr) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(new Date());
-		now.add(Calendar.YEAR, years);
-		return dateToDateString(now.getTime(), formatStr);
-	}
+    /**
+     * ���Date���������formatStr������������������
+     *
+     * @param date
+     * @param formatStr
+     * @return
+     */
+    public static String dateToDateString(Date date, String formatStr) {
+        DateFormat df = getDateFormat(formatStr);
+        return df.format(date);
+    }
 
-	/**
-	 * ������������������mon���������������(formatStr)������������
-	 * 
-	 * @param months
-	 * @param formatStr
-	 * @return
-	 */
-	public static String getDateStringOfMon(int months, String formatStr) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(new Date());
-		now.add(Calendar.MONTH, months);
-		return dateToDateString(now.getTime(), formatStr);
-	}
+    /**
+     * ���String���������formatStr������������������
+     *
+     * @param date
+     * @param formatStr1
+     * @param formatStr2
+     * @return
+     */
+    public static String stringToDateString(String date, String formatStr1, String formatStr2) {
+        Date d = getDate(date, formatStr1);
+        DateFormat df = getDateFormat(formatStr2);
+        return df.format(d);
+    }
 
-	/**
-	 * ������������������days���������������(formatStr)������������
-	 * 
-	 * @param days
-	 * @param formatStr
-	 * @return
-	 */
-	public static String getDateStringOfDay(int days, String formatStr) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(new Date());
-		now.add(Calendar.DATE, days);
-		return dateToDateString(now.getTime(), formatStr);
-	}
+    /**
+     * ������������������yyyy-MM-dd���������
+     *
+     * @return
+     */
+    public static String getCurDate() {
+        return dateToDateString(new Date(), yyyy_MM_dd_EN);
+    }
 
-	/**
-	 * ���������������������������
-	 * 
-	 * @param date
-	 * @return
-	 */
-	public static int theDateIsToday(String date, String format) {
-		String theDate = stringToDateString(date, format, yyyyMMdd_EN);
-		String today = getDateStringOfDay(0, yyyyMMdd_EN);
-		if (theDate.equals(today)) {
-			return 1;
-		} else {
-			return 0;
-		}
-	}
+    /**
+     * ������������������
+     *
+     * @return
+     */
+    public static String getCurDate(String formatStr) {
+        return dateToDateString(new Date(), formatStr);
+    }
 
-	/**
-	 * ������������������hours������������������(formatStr)������������
-	 * 
-	 * @param hours
-	 * @param formatStr
-	 * @return
-	 */
-	public static String getDateStringOfHour(int hours, String formatStr) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(new Date());
-		now.add(Calendar.HOUR_OF_DAY, hours);
-		return dateToDateString(now.getTime(), formatStr);
-	}
+    /**
+     * ������������������yyyy���MM���dd������������
+     *
+     * @return
+     */
+    public static String getCurCNDate() {
+        return dateToDateString(new Date(), yyyy_MM_dd_CN);
+    }
 
-	/**
-	 * ������������������mon���������������(formatStr)������������
-	 * 
-	 * @param date
-	 * @param mon
-	 * @param formatStr
-	 * @return
-	 */
-	public static String getDateOfMon(String date, int mon, String formatStr) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(getDate(date, formatStr));
-		now.add(Calendar.MONTH, mon);
-		return dateToDateString(now.getTime(), formatStr);
-	}
+    /**
+     * ������������������������yyyy-MM-dd HH:mm:ss���������
+     *
+     * @return
+     */
+    public static String getCurDateTime() {
+        return dateToDateString(new Date(), yyyy_MM_dd_HH_mm_ss_EN);
+    }
 
-	/**
-	 * ������������������day���������������(formatStr)������������
-	 * 
-	 * @param date
-	 * @param day
-	 * @param formatStr
-	 * @return
-	 */
-	public static String getDateOfDay(String date, int day, String formatStr) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(getDate(date, formatStr));
-		now.add(Calendar.DATE, day);
-		return dateToDateString(now.getTime(), formatStr);
-	}
+    /**
+     * ������������������������yyyy���MM���dd���HH���mm���ss������������
+     *
+     * @return
+     */
+    public static String getCurZhCNDateTime() {
+        return dateToDateString(new Date(), yyyy_MM_dd_HH_mm_ss_CN);
+    }
+
+    /**
+     * ������������"yyyy-MM-dd HH:mm:ss"������������������������������������������,time2-time1
+     *
+     * @param time1
+     * @param time2
+     * @return
+     */
+    public static long compareDateStr(String time1, String time2) {
+        Date d1 = getDate(time1);
+        Date d2 = getDate(time2);
+        return d2.getTime() - d1.getTime();
+    }
+
+    /**
+     * ���������������������������������������
+     *
+     * @param time1
+     * @param time2
+     * @param format
+     * @return
+     */
+    public static long compareDateStr(String time1, String time2, String format) {
+        Date d1 = getDate(time1, format);
+        Date d2 = getDate(time2, format);
+        return d2.getTime() - d1.getTime();
+    }
+
+    /**
+     * ������������������������������������������������
+     *
+     * @param time
+     * @param format
+     * @return
+     */
+    public static long compareDateNow(String time, String format) {
+        Date date = getDate(time, format);
+        return new Date().getTime() - date.getTime();
+    }
+
+    /**
+     * ������������"yyyy-MM-dd HH:mm:ss"������������������������������������������,time2-time1
+     *
+     * @param time1
+     * @param time2
+     * @return
+     */
+    public static long compareDateStr(Date time1, Date time2) {
+        return time2.getTime() - time1.getTime();
+    }
+
+    /**
+     * nows������������date������ ���true
+     *
+     * @param nows
+     * @param date
+     * @return
+     */
+    public static boolean isTimeBefor(Date nows, Date date) {
+        long hous = nows.getTime() - date.getTime();
+        if (hous > 0) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    /**
+     * ������������������������������������������������������
+     *
+     * @param hours
+     * @return
+     */
+    public static long getMicroSec(BigDecimal hours) {
+        BigDecimal bd;
+        bd = hours.multiply(new BigDecimal(3600 * 1000));
+        return bd.longValue();
+    }
+
+    /**
+     * ������������������years���������������(formatStr)������������
+     *
+     * @param years
+     * @param formatStr
+     * @return
+     */
+    public static String getDateStringOfYear(int years, String formatStr) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(new Date());
+        now.add(Calendar.YEAR, years);
+        return dateToDateString(now.getTime(), formatStr);
+    }
+
+    /**
+     * ������������������mon���������������(formatStr)������������
+     *
+     * @param months
+     * @param formatStr
+     * @return
+     */
+    public static String getDateStringOfMon(int months, String formatStr) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(new Date());
+        now.add(Calendar.MONTH, months);
+        return dateToDateString(now.getTime(), formatStr);
+    }
+
+    /**
+     * ������������������days���������������(formatStr)������������
+     *
+     * @param days
+     * @param formatStr
+     * @return
+     */
+    public static String getDateStringOfDay(int days, String formatStr) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(new Date());
+        now.add(Calendar.DATE, days);
+        return dateToDateString(now.getTime(), formatStr);
+    }
+
+    /**
+     * ���������������������������
+     *
+     * @param date
+     * @return
+     */
+    public static int theDateIsToday(String date, String format) {
+        String theDate = stringToDateString(date, format, yyyyMMdd_EN);
+        String today = getDateStringOfDay(0, yyyyMMdd_EN);
+        if (theDate.equals(today)) {
+            return 1;
+        } else {
+            return 0;
+        }
+    }
+
+    /**
+     * ������������������hours������������������(formatStr)������������
+     *
+     * @param hours
+     * @param formatStr
+     * @return
+     */
+    public static String getDateStringOfHour(int hours, String formatStr) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(new Date());
+        now.add(Calendar.HOUR_OF_DAY, hours);
+        return dateToDateString(now.getTime(), formatStr);
+    }
+
+    /**
+     * ������������������mon���������������(formatStr)������������
+     *
+     * @param date
+     * @param mon
+     * @param formatStr
+     * @return
+     */
+    public static String getDateOfMon(String date, int mon, String formatStr) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(getDate(date, formatStr));
+        now.add(Calendar.MONTH, mon);
+        return dateToDateString(now.getTime(), formatStr);
+    }
+
+
+    /**
+     * ������������������day���������������(formatStr)������������
+     *
+     * @param date
+     * @param day
+     * @param formatStr
+     * @return
+     */
+    public static String getDateOfDay(String date, int day, String formatStr) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(getDate(date, formatStr));
+        now.add(Calendar.DATE, day);
+        return dateToDateString(now.getTime(), formatStr);
+    }
+
+    /**
+     * @Description: ������������������day���������������
+     * @Param: [date, day]
+     * @return: java.util.Date
+     * @Author: ���������
+     * @Date: 2021/3/30
+     */
+    public static Date getDateOfDay(Date date, int day) {
+        if (date == null)
+            return null;
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(date);
+        now.add(Calendar.DAY_OF_MONTH, day);
+        return now.getTime();
+    }
+
+
+    public static Date getDate(Date beginDate, int ds) {
+        if (ds == 0)
+            return new Date();
+        try {
+            SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
+            Calendar date = Calendar.getInstance();
+            date.setTime(beginDate);
+            date.set(Calendar.DATE, date.get(Calendar.DATE) - ds);
+            Date endDate = dft.parse(dft.format(date.getTime()));
+            return endDate;
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return new Date();
+    }
+
+    public static String getAfterNDays(Date date, int n, String formateStr) {
+        SimpleDateFormat sdf = new SimpleDateFormat(formateStr);
+        Calendar calendar = new GregorianCalendar();
+        calendar.setTime(date);
+        calendar.add(Calendar.DATE, n);
+        return sdf.format(calendar.getTime());
+    }
+
+    /**
+     * ������������������mins������������������(formatStr)������������
+     *
+     * @param date
+     * @param mins
+     * @param formatStr
+     * @return
+     */
+    public static String getDateOfMin(String date, int mins, String formatStr) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(getDate(date, formatStr));
+        now.add(Calendar.SECOND, mins * 60);
+        return dateToDateString(now.getTime(), formatStr);
+    }
+
+    /**
+     * ������������������mins������������������������
+     *
+     * @param date
+     * @param mins
+     * @return
+     */
+    public static Date getDateOfMin(Date date, int mins) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(date);
+        now.add(Calendar.SECOND, mins * 60);
+        return now.getTime();
+    }
+
+    /**
+     * ������������������mins������������������(formatStr)������������
+     *
+     * @param mins
+     * @param formatStr
+     * @return
+     */
+    public static String getDateStringOfMin(int mins, String formatStr) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(new Date());
+        now.add(Calendar.MINUTE, mins);
+        return dateToDateString(now.getTime(), formatStr);
+    }
+
+    /**
+     * ������������������mins������������������������
+     *
+     * @param mins
+     * @return
+     */
+    public static Date getDateOfMin(int mins) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(new Date());
+        now.add(Calendar.MINUTE, mins);
+        return now.getTime();
+    }
+
+    /**
+     * ������������������sec���������������(formatStr)������������
+     *
+     * @param sec
+     * @param formatStr
+     * @return
+     */
+    public static String getDateStringOfSec(int sec, String formatStr) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(new Date());
+        now.add(Calendar.SECOND, sec);
+        return dateToDateString(now.getTime(), formatStr);
+    }
+
+    /**
+     * ���������������������������������
+     *
+     * @return
+     */
+    public static int getMonthDay(Date date) {
+        Calendar c = Calendar.getInstance();
+        c.setTime(date);
+        return c.getActualMaximum(Calendar.DAY_OF_MONTH);
+
+    }
+
+    /**
+     * ���������������������������������
+     *
+     * @return
+     */
+    public static int getCurentMonthDay() {
+        Date date = Calendar.getInstance().getTime();
+        return getMonthDay(date);
+    }
+
+    /**
+     * ��������������������������������� yyyy-mm-dd
+     *
+     * @return
+     */
+    public static int getMonthDay(String date) {
+        Date strDate = getDate(date, yyyy_MM_dd_EN);
+        return getMonthDay(strDate);
+    }
+
+    /**
+     * ������19xx,20xx������������
+     *
+     * @param d
+     * @return
+     */
+    public static int getYear(Date d) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(d);
+        return now.get(Calendar.YEAR);
+    }
+
+    /**
+     * ���������������1-12���
+     *
+     * @param d
+     * @return
+     */
+    public static int getMonth(Date d) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(d);
+        return now.get(Calendar.MONTH) + 1;
+    }
+
+    /**
+     * ������xxxx-xx-xx������
+     *
+     * @param d
+     * @return
+     */
+    public static int getDay(Date d) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(d);
+        return now.get(Calendar.DAY_OF_MONTH);
+    }
+
+    /**
+     * ������Date������������(24������)
+     *
+     * @param d
+     * @return
+     */
+    public static int getHour(Date d) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(d);
+        return now.get(Calendar.HOUR_OF_DAY);
+    }
+
+    /**
+     * ������Date������������
+     *
+     * @param d
+     * @return
+     */
+    public static int getMin(Date d) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(d);
+        return now.get(Calendar.MINUTE);
+    }
+
+    /**
+     * ������Date���������
+     *
+     * @param d
+     * @return
+     */
+    public static int getSecond(Date d) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(d);
+        return now.get(Calendar.SECOND);
+    }
+
+    /**
+     * ������������������
+     *
+     * @return yyyy-MM-dd
+     */
+    public static String getMondayOfThisWeek() {
+        Calendar c = Calendar.getInstance();
+        int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
+        if (day_of_week == 0)
+            day_of_week = 7;
+        c.add(Calendar.DATE, -day_of_week + 1);
+        return dateToDateString(c.getTime(), yyyy_MM_dd_EN);
+    }
+
+    /**
+     * ������������������
+     *
+     * @return yyyy-MM-dd
+     */
+    public static String getSundayOfThisWeek() {
+        Calendar c = Calendar.getInstance();
+        int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
+        if (day_of_week == 0)
+            day_of_week = 7;
+        c.add(Calendar.DATE, -day_of_week + 7);
+        return dateToDateString(c.getTime());
+    }
+
+    /**
+     * ���������������(*)
+     *
+     * @return yyyy-MM-dd
+     */
+    public static String getDayOfThisWeek(int num) {
+        Calendar c = Calendar.getInstance();
+        int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
+        if (day_of_week == 0)
+            day_of_week = 7;
+        c.add(Calendar.DATE, -day_of_week + num);
+        return dateToDateString(c.getTime(), yyyy_MM_dd_EN);
+    }
+
+    /**
+     * ���������������������
+     *
+     * @return yyyy-MM-dd
+     */
+    public static String getDayOfThisMoon(String num) {
+        String date = dateToDateString(new Date(), yyyy_MM_EN);
+        date = date + "-" + num;
+        return date;
+    }
+
+    /**
+     * ���������������������������������
+     *
+     * @param beginDate
+     * @param endDate
+     * @return
+     */
+    public static long getQuotByDays(String beginDate, String endDate) {
+        long quot = 0;
+        DateFormat df = getDateFormat(yyyy_MM_dd_EN);
+        try {
+            Date d1 = df.parse(beginDate);
+            Date d2 = df.parse(endDate);
+            quot = d2.getTime() - d1.getTime();
+            quot = quot / 1000 / 60 / 60 / 24;
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
+        return quot;
+    }
+
+    /**
+     * ���������������������������������������������������
+     *
+     * @param date
+     * @param days
+     * @return
+     */
+    public static String getDateAddDay(String date, int days) {
+        DateFormat df = getDateFormat(yyyy_MM_dd_EN);
+        try {
+            Calendar cal = Calendar.getInstance();
+            cal.setTime(df.parse(date));
+            cal.set(Calendar.DAY_OF_YEAR, cal.get(Calendar.DAY_OF_YEAR) + days);
+
+            date = df.format(cal.getTime());
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
+        return date;
+    }
+
+    /**
+     * ������������������������
+     *
+     * @return
+     */
+    public static Date getFirstDayOfCurrMonth() {
+        Calendar cal = Calendar.getInstance();
+        cal.set(Calendar.DAY_OF_MONTH, 1);
+        return getDate(dateToDateString(cal.getTime(), yyyy_MM_dd_EN));
+    }
+
+    /*
+     * ������������������������
+     * */
+    public static Date getFirstDayOfCurrYear() {
+        Calendar cal = Calendar.getInstance();
+        cal.set(Calendar.DAY_OF_YEAR, 1);
+        return getDate(dateToDateString(cal.getTime(), yyyy_MM_dd_EN));
+    }
+
+    /*
+     * ������������������������������
+     * */
+    public static Date getFirstDayOfYear(Date date) {
+        final Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        final int last = cal.getActualMinimum(Calendar.DAY_OF_YEAR);
+        cal.set(Calendar.DAY_OF_YEAR, last);
+        cal.set(Calendar.HOUR_OF_DAY,0);
+        cal.set(Calendar.MINUTE,0);
+        cal.set(Calendar.SECOND,0);
+        return cal.getTime();
+    }
+
+    /*
+     * ���������������������������������
+     * */
+    public static Date getLastDayOfYear(Date date) {
+        final Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        final int last = cal.getActualMaximum(Calendar.DAY_OF_YEAR);
+        cal.set(Calendar.DAY_OF_YEAR, last);
+        cal.set(Calendar.HOUR_OF_DAY, 23);
+        cal.set(Calendar.MINUTE, 59);
+        cal.set(Calendar.SECOND, 59);
+        return cal.getTime();
+    }
+
+    /*
+    * ���������������������������������
+    * */
+    public static Date getFirstDayOfMonth(Date date){
+        final Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        final int last = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        cal.set(Calendar.DAY_OF_MONTH, last);
+        cal.set(Calendar.HOUR_OF_DAY,0);
+        cal.set(Calendar.MINUTE,0);
+        cal.set(Calendar.SECOND,0);
+        return cal.getTime();
+    }
+
+    /*
+     * ������������������������������������
+     * */
+    public static Date getLastDayOfMonth(Date date) {
+        final Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        final int last = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        cal.set(Calendar.DAY_OF_YEAR, last);
+        cal.set(Calendar.HOUR_OF_DAY, 23);
+        cal.set(Calendar.MINUTE, 59);
+        cal.set(Calendar.SECOND, 59);
+        return cal.getTime();
+    }
+
+
+    /*
+     * ���������������������������
+     * */
+    public static boolean isCurrentYear(Date date) {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(new Date());
+        int currentYear = cal.get(Calendar.YEAR);
+        cal.setTime(date);
+        int year = cal.get(Calendar.YEAR);
+        return year == currentYear;
+    }
+
+    /**
+     * ������������������������������
+     *
+     * @return
+     */
+    public static Date getLastDayOfCurrMonth() {
+        Calendar cal = Calendar.getInstance();
+        cal.add(Calendar.MONTH, 1);
+        cal.set(Calendar.DAY_OF_MONTH, 0);
+        return getDate(dateToDateString(cal.getTime(), yyyy_MM_dd_EN));
+    }
+
+    /**
+     * ���������������������������������������������������
+     *
+     * @param date
+     * @param m
+     * @return
+     */
+    public static String getDateAddMonth(String date, int m) {
+        DateFormat df = getDateFormat(yyyy_MM_EN);
+        try {
+            Calendar cal = Calendar.getInstance();
+            cal.setTime(df.parse(date));
+            cal.add(Calendar.MONTH, m);
+            date = df.format(cal.getTime());
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
+        return date;
+    }
+
+    /**
+     * ������������������
+     *
+     * @param date
+     * @return
+     * @throws ParseException
+     */
+    public static String getYesterday(Date date) throws ParseException {
+        DateFormat df = getDateFormat(yyyy_MM_dd_EN);
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(df.parse(df.format(date)));
+        calendar.add(Calendar.DAY_OF_MONTH, -1);
+        return df.format(calendar.getTime());
+    }
+
+    /*
+     * ������������Date
+     * */
+    public static Date getYesterdayDate() {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(new Date());
+        cal.set(Calendar.HOUR_OF_DAY, 0);
+        cal.set(Calendar.MINUTE, 0);
+        cal.set(Calendar.SECOND, 0);
+        cal.add(Calendar.DAY_OF_MONTH, -1);
+        return cal.getTime();
+    }
+
+    /**
+     * 10���������������������
+     *
+     * @param dateInt
+     * @param format
+     * @return
+     */
+    public static String getIntToStr(String dateInt, String format) {
+        DateFormat df = getDateFormat(format);
+        long times = Integer.parseInt(dateInt) * 1000L;
+        Date date = new Date(times);
+        return df.format(date);
+    }
+
+    /**
+     * ������ 10������������
+     *
+     * @return
+     */
+    public static Integer getDateInt() {
+        return (int) (System.currentTimeMillis() / 1000);
+    }
+
+    /**
+     * 13���������������������
+     *
+     * @param time
+     * @param format
+     * @return
+     */
+    public static String getLongToStr(long time, String format) {
+        Date date = new Date(time);
+        return dateToDateString(date, format);
+    }
 
-	public static Date getDate(Date beginDate, int ds) {
-		if (ds == 0)
-			return new Date();
-		try {
-			SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
-			Calendar date = Calendar.getInstance();
-			date.setTime(beginDate);
-			date.set(Calendar.DATE, date.get(Calendar.DATE) - ds);
-			Date endDate = dft.parse(dft.format(date.getTime()));
-			return endDate;
-		} catch (ParseException e) {
-			e.printStackTrace();
-		}
-		return new Date();
-	}
+    /**
+     * ������������������������������������
+     *
+     * @param start
+     * @param end
+     * @return
+     */
+    public static int getIntervalSec(int start, int end) {
+        return (end - start) * 60 * 60;
+    }
 
-	public static String getAfterNDays(Date date, int n, String formateStr) {
-		SimpleDateFormat sdf = new SimpleDateFormat(formateStr);
-		Calendar calendar = new GregorianCalendar();
-		calendar.setTime(date);
-		calendar.add(Calendar.DATE, n);
-		return sdf.format(calendar.getTime());
-	}
+    /**
+     * ���������������������������������
+     *
+     * @param time
+     * @return
+     */
+    public static String getMillsStr(long time) {
+        String timeStr = String.valueOf(time);
+        String suffix = timeStr.substring(0, timeStr.length() - 3);
+        String prefix = timeStr.substring(timeStr.length() - 3, timeStr.length());
+        return suffix + "." + prefix;
+    }
 
-	/**
-	 * ������������������mins������������������(formatStr)������������
-	 * 
-	 * @param date
-	 * @param mins
-	 * @param formatStr
-	 * @return
-	 */
-	public static String getDateOfMin(String date, int mins, String formatStr) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(getDate(date, formatStr));
-		now.add(Calendar.SECOND, mins * 60);
-		return dateToDateString(now.getTime(), formatStr);
-	}
+    /**
+     * ���������������������������������������������
+     *
+     * @param timeStr
+     * @param formatStr
+     * @return
+     */
+    public static String longToString(String timeStr, String formatStr) {
+        long times = Long.parseLong(timeStr.replace(".", ""));
+        Date date = new Date(times);
+        return dateToDateString(date, formatStr);
+    }
 
-	/**
-	 * ������������������mins������������������������
-	 * 
-	 * @param date
-	 * @param mins
-	 * @return
-	 */
-	public static Date getDateOfMin(Date date, int mins) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(date);
-		now.add(Calendar.SECOND, mins * 60);
-		return now.getTime();
-	}
+    /**
+     * ������������������������
+     *
+     * @return
+     */
+    public static Long getTodayTime() {
+        Calendar todayStart = Calendar.getInstance();
+        todayStart.set(Calendar.HOUR_OF_DAY, 0);
+        todayStart.set(Calendar.MINUTE, 0);
+        todayStart.set(Calendar.SECOND, 0);
+        todayStart.set(Calendar.MILLISECOND, 0);
+        return todayStart.getTime().getTime();
+    }
 
-	/**
-	 * ������������������mins������������������(formatStr)������������
-	 * 
-	 * @param mins
-	 * @param formatStr
-	 * @return
-	 */
-	public static String getDateStringOfMin(int mins, String formatStr) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(new Date());
-		now.add(Calendar.MINUTE, mins);
-		return dateToDateString(now.getTime(), formatStr);
-	}
 
-	/**
-	 * ������������������mins������������������������
-	 * 
-	 * @param mins
-	 * @return
-	 */
-	public static Date getDateOfMin(int mins) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(new Date());
-		now.add(Calendar.MINUTE, mins);
-		return now.getTime();
-	}
+    public static Integer getTodayInt() {
+        return (int) (getTodayTime() / 1000);
+    }
 
-	/**
-	 * ������������������sec���������������(formatStr)������������
-	 * 
-	 * @param sec
-	 * @param formatStr
-	 * @return
-	 */
-	public static String getDateStringOfSec(int sec, String formatStr) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(new Date());
-		now.add(Calendar.SECOND, sec);
-		return dateToDateString(now.getTime(), formatStr);
-	}
+    /**
+     * ������������������������
+     *
+     * @return
+     */
+    public static Long getEndTime() {
+        Calendar todayEnd = Calendar.getInstance();
+        todayEnd.set(Calendar.HOUR, 23);
+        todayEnd.set(Calendar.MINUTE, 59);
+        todayEnd.set(Calendar.SECOND, 59);
+        todayEnd.set(Calendar.MILLISECOND, 999);
+        return todayEnd.getTime().getTime();
+    }
 
-	/**
-	 * ���������������������������������
-	 * 
-	 * @return
-	 */
-	public static int getMonthDay(Date date) {
-		Calendar c = Calendar.getInstance();
-		c.setTime(date);
-		return c.getActualMaximum(Calendar.DAY_OF_MONTH);
+    public static Integer getTomorrowInt() {
+        return (int) (getTomorrowTime() / 1000);
+    }
 
-	}
+    /**
+     * ���������������������������
+     *
+     * @return
+     */
+    public static Long getTomorrowTime() {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(new Date());
+        cal.set(Calendar.HOUR_OF_DAY, 0);
+        cal.set(Calendar.MINUTE, 0);
+        cal.set(Calendar.SECOND, 0);
+        cal.set(Calendar.MILLISECOND, 0);
+        cal.add(Calendar.DAY_OF_MONTH, 1);
+        return cal.getTime().getTime();
+    }
 
-	/**
-	 * ���������������������������������
-	 * 
-	 * @return
-	 */
-	public static int getCurentMonthDay() {
-		Date date = Calendar.getInstance().getTime();
-		return getMonthDay(date);
-	}
+    /**
+     * ���������������������������������
+     *
+     * @param hour
+     * @return
+     */
+    public static Long getPointHourTime(int hour) {
+        Calendar todayStart = Calendar.getInstance();
+        todayStart.set(Calendar.HOUR_OF_DAY, hour);
+        todayStart.set(Calendar.MINUTE, 0);
+        todayStart.set(Calendar.SECOND, 0);
+        todayStart.set(Calendar.MILLISECOND, 0);
+        return todayStart.getTime().getTime();
+    }
 
-	/**
-	 * ��������������������������������� yyyy-mm-dd
-	 * 
-	 * @return
-	 */
-	public static int getMonthDay(String date) {
-		Date strDate = getDate(date, yyyy_MM_dd_EN);
-		return getMonthDay(strDate);
-	}
+    /**
+     * ������������n���������h������
+     *
+     * @param days
+     * @param hour
+     * @return
+     */
+    public static Long getPointDateHourTime(int days, int hour) {
+        Calendar todayStart = Calendar.getInstance();
+        todayStart.add(Calendar.DATE, days);
+        todayStart.set(Calendar.HOUR_OF_DAY, hour);
+        todayStart.set(Calendar.MINUTE, 0);
+        todayStart.set(Calendar.SECOND, 0);
+        todayStart.set(Calendar.MILLISECOND, 0);
+        return todayStart.getTime().getTime();
+    }
 
-	/**
-	 * ������19xx,20xx������������
-	 * 
-	 * @param d
-	 * @return
-	 */
-	public static int getYear(Date d) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(d);
-		return now.get(Calendar.YEAR);
-	}
+    /**
+     * ���������������������
+     *
+     * @param time
+     * @return
+     */
+    public static Integer hourTosec(String time) {
+        if ("null".equals(time) || StringUtils.isEmpty(time)) {
+            return null;
+        }
+        if (time.length() <= 5) {
+            time += ":00";
+        }
+        int index1 = time.indexOf(":");
+        int index2 = time.indexOf(":", index1 + 1);
+        int hh = Integer.parseInt(time.substring(0, index1));
+        int mi = Integer.parseInt(time.substring(index1 + 1, index2));
+        int ss = Integer.parseInt(time.substring(index2 + 1));
+        return hh * 60 * 60 + mi * 60 + ss;
+    }
 
-	/**
-	 * ���������������1-12���
-	 * 
-	 * @param d
-	 * @return
-	 */
-	public static int getMonth(Date d) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(d);
-		return now.get(Calendar.MONTH) + 1;
-	}
+    /**
+     * ���������������������
+     *
+     * @param time
+     * @return
+     */
+    public static Integer minTosec(String time) {
+        if (time.length() <= 5) {
+            time += ":00";
+        }
+        int index1 = time.indexOf(":");
+        int index2 = time.indexOf(":", index1 + 1);
+        int mi = Integer.parseInt(time.substring(0, index1));
+        int ss = Integer.parseInt(time.substring(index1 + 1, index2));
+        return mi * 60 + ss;
+    }
 
-	/**
-	 * ������xxxx-xx-xx������
-	 * 
-	 * @param d
-	 * @return
-	 */
-	public static int getDay(Date d) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(d);
-		return now.get(Calendar.DAY_OF_MONTH);
-	}
 
-	/**
-	 * ������Date������������(24������)
-	 * 
-	 * @param d
-	 * @return
-	 */
-	public static int getHour(Date d) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(d);
-		return now.get(Calendar.HOUR_OF_DAY);
-	}
+    public static boolean isDate(String dateTimeStr, String formatStr) {
+        DateFormat df = getDateFormat(formatStr);
+        try {
+            df.parse(dateTimeStr);
+            return true;
+        } catch (Exception e) {
+            return false;
+        }
+    }
 
-	/**
-	 * ������Date������������
-	 * 
-	 * @param d
-	 * @return
-	 */
-	public static int getMin(Date d) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(d);
-		return now.get(Calendar.MINUTE);
-	}
+    /**
+     * ���������������������������������
+     *
+     * @param strDate      ������������ yyyy-MM-dd HH:mm:ss
+     * @param strDateBegin ������������ 00:00:00
+     * @param strDateEnd   ������������ 00:05:00
+     * @return
+     */
+    public static boolean isInDate(String strDate, String strDateBegin, String strDateEnd) {
+        // ���������������������������
+        int strDateH = Integer.parseInt(strDate.substring(11, 13));
+        int strDateM = Integer.parseInt(strDate.substring(14, 16));
+        int strDateS = Integer.parseInt(strDate.substring(17, 19));
+        // ���������������������������
+        int strDateBeginH = Integer.parseInt(strDateBegin.substring(0, 2));
+        int strDateBeginM = Integer.parseInt(strDateBegin.substring(3, 5));
+        int strDateBeginS = Integer.parseInt(strDateBegin.substring(6, 8));
+        // ���������������������������
+        int strDateEndH = Integer.parseInt(strDateEnd.substring(0, 2));
+        int strDateEndM = Integer.parseInt(strDateEnd.substring(3, 5));
+        int strDateEndS = Integer.parseInt(strDateEnd.substring(6, 8));
+        if ((strDateH >= strDateBeginH && strDateH <= strDateEndH)) {
+            // ������������������������������������������������������������������
+            if (strDateH > strDateBeginH && strDateH < strDateEndH) {
+                return true;
+                // ������������������������������������������������������������������������������������
+            } else if (strDateH == strDateBeginH && strDateM >= strDateBeginM && strDateM <= strDateEndM) {
+                return true;
+                // ������������������������������������������������������������������������������������������������������������������������
+            } else if (strDateH == strDateBeginH && strDateM == strDateBeginM && strDateS >= strDateBeginS
+                    && strDateS <= strDateEndS) {
+                return true;
+            }
+            // ���������������������������������������������������������������������������������������������������������������������������
+            else if (strDateH >= strDateBeginH && strDateH == strDateEndH && strDateM <= strDateEndM) {
+                return true;
+                // ������������������������������������������������������������������������������������������������������������������������������������������������������������
+            } else if (strDateH >= strDateBeginH && strDateH == strDateEndH && strDateM == strDateEndM
+                    && strDateS <= strDateEndS) {
+                return true;
+            } else {
+                return false;
+            }
+        } else {
+            return false;
+        }
+    }
 
-	/**
-	 * ������Date���������
-	 * 
-	 * @param d
-	 * @return
-	 */
-	public static int getSecond(Date d) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(d);
-		return now.get(Calendar.SECOND);
-	}
+    /**
+     * ���������������������������������
+     *
+     * @param date         ������������ yyyy-MM-dd HH:mm:ss
+     * @param strDateBegin ������������ 00:00:00
+     * @param strDateEnd   ������������ 00:05:00
+     * @return
+     */
+    public static boolean isInDate(Date date, String strDateBegin, String strDateEnd) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String strDate = sdf.format(date);
+        // ���������������������������
+        int strDateH = Integer.parseInt(strDate.substring(11, 13));
+        int strDateM = Integer.parseInt(strDate.substring(14, 16));
+        int strDateS = Integer.parseInt(strDate.substring(17, 19));
+        // ���������������������������
+        int strDateBeginH = Integer.parseInt(strDateBegin.substring(0, 2));
+        int strDateBeginM = Integer.parseInt(strDateBegin.substring(3, 5));
+        int strDateBeginS = Integer.parseInt(strDateBegin.substring(6, 8));
+        // ���������������������������
+        int strDateEndH = Integer.parseInt(strDateEnd.substring(0, 2));
+        int strDateEndM = Integer.parseInt(strDateEnd.substring(3, 5));
+        int strDateEndS = Integer.parseInt(strDateEnd.substring(6, 8));
+        if ((strDateH >= strDateBeginH && strDateH <= strDateEndH)) {
+            // ������������������������������������������������������������������
+            if (strDateH > strDateBeginH && strDateH < strDateEndH) {
+                return true;
+                // ������������������������������������������������������������������������������������
+            } else if (strDateH == strDateBeginH && strDateM >= strDateBeginM && strDateM <= strDateEndM) {
+                return true;
+                // ������������������������������������������������������������������������������������������������������������������������
+            } else if (strDateH == strDateBeginH && strDateM == strDateBeginM && strDateS >= strDateBeginS
+                    && strDateS <= strDateEndS) {
+                return true;
+            }
+            // ���������������������������������������������������������������������������������������������������������������������������
+            else if (strDateH >= strDateBeginH && strDateH == strDateEndH && strDateM <= strDateEndM) {
+                return true;
+                // ������������������������������������������������������������������������������������������������������������������������������������������������������������
+            } else if (strDateH >= strDateBeginH && strDateH == strDateEndH && strDateM == strDateEndM
+                    && strDateS <= strDateEndS) {
+                return true;
+            } else {
+                return false;
+            }
+        } else {
+            return false;
+        }
+    }
 
-	/**
-	 * ������������������
-	 * 
-	 * @return yyyy-MM-dd
-	 */
-	public static String getMondayOfThisWeek() {
-		Calendar c = Calendar.getInstance();
-		int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
-		if (day_of_week == 0)
-			day_of_week = 7;
-		c.add(Calendar.DATE, -day_of_week + 1);
-		return dateToDateString(c.getTime(), yyyy_MM_dd_EN);
-	}
+    public static boolean isInTime(int time, int begin, int end) {
+        if (time >= begin && time < end) {
+            return true;
+        }
+        return false;
+    }
 
-	/**
-	 * ������������������
-	 * 
-	 * @return yyyy-MM-dd
-	 */
-	public static String getSundayOfThisWeek() {
-		Calendar c = Calendar.getInstance();
-		int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
-		if (day_of_week == 0)
-			day_of_week = 7;
-		c.add(Calendar.DATE, -day_of_week + 7);
-		return dateToDateString(c.getTime());
-	}
+    public static int getMinutest(String begin, String format) {
+        String nowMinutes = getCurDate("HH:mm");
+        long time = compareDateStr("09:00", nowMinutes, "HH:mm");
+        return (int) time;
+    }
 
-	/**
-	 * ���������������(*)
-	 * 
-	 * @return yyyy-MM-dd
-	 */
-	public static String getDayOfThisWeek(int num) {
-		Calendar c = Calendar.getInstance();
-		int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
-		if (day_of_week == 0)
-			day_of_week = 7;
-		c.add(Calendar.DATE, -day_of_week + num);
-		return dateToDateString(c.getTime(), yyyy_MM_dd_EN);
-	}
+    /**
+     * <p>
+     * Title: addDays
+     * </p>
+     * <p>
+     * Description: ������������
+     * </p>
+     *
+     * @param days
+     * @return
+     */
+    public static Date addDays(Date date, int days) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.add(Calendar.DATE, days);
+        return calendar.getTime();
+    }
 
-	/**
-	 * ���������������������
-	 * 
-	 * @return yyyy-MM-dd
-	 */
-	public static String getDayOfThisMoon(String num) {
-		String date = dateToDateString(new Date(), yyyy_MM_EN);
-		date = date + "-" + num;
-		return date;
-	}
+    /**
+     * <p>
+     * Title: addMonths
+     * </p>
+     * <p>
+     * Description: ������������
+     * </p>
+     *
+     * @param date
+     * @param months
+     * @return
+     */
+    public static Date addMonths(Date date, int months) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.add(Calendar.MONTH, months);
+        return calendar.getTime();
+    }
 
-	/**
-	 * ���������������������������������
-	 * 
-	 * @param beginDate
-	 * @param endDate
-	 * @return
-	 */
-	public static long getQuotByDays(String beginDate, String endDate) {
-		long quot = 0;
-		DateFormat df = getDateFormat(yyyy_MM_dd_EN);
-		try {
-			Date d1 = df.parse(beginDate);
-			Date d2 = df.parse(endDate);
-			quot = d2.getTime() - d1.getTime();
-			quot = quot / 1000 / 60 / 60 / 24;
-		} catch (ParseException e) {
-			throw new RuntimeException(e);
-		}
-		return quot;
-	}
+    /**
+     * <p>
+     * Title: getDays
+     * </p>
+     * <p>
+     * Description: ���������������������������������������
+     * </p>
+     *
+     * @param minDate
+     * @param maxDate
+     * @return
+     */
+    public static int getDays(Date minDate, Date maxDate) {
+        int days = 0;
+        if (null == minDate || null == maxDate)
+            return days;
+        days = (int) ((maxDate.getTime() - minDate.getTime()) / (24 * 60 * 60 * 1000));
+        return days;
+    }
 
-	/**
-	 * ���������������������������������������������������
-	 * 
-	 * @param date
-	 * @param days
-	 * @return
-	 */
-	public static String getDateAddDay(String date, int days, String format) {
-		DateFormat df = getDateFormat(format);
-		try {
-			Calendar cal = Calendar.getInstance();
-			cal.setTime(df.parse(date));
-			cal.set(Calendar.DAY_OF_YEAR, cal.get(Calendar.DAY_OF_YEAR) + days);
+    /**
+     * @Description: ���������������������������������
+     * @Param: [start, end]
+     * @return: int
+     * @Author: ���������
+     * @Date: 2021/9/23
+     */
+    public static int getMonth(Date start, Date end) {
+        if (start.after(end)) {
+            Date t = start;
+            start = end;
+            end = t;
+        }
+        Calendar startCalendar = Calendar.getInstance();
+        startCalendar.setTime(start);
+        Calendar endCalendar = Calendar.getInstance();
+        endCalendar.setTime(end);
+        Calendar temp = Calendar.getInstance();
+        temp.setTime(end);
+        temp.add(Calendar.DATE, 1);
 
-			date = df.format(cal.getTime());
-		} catch (ParseException e) {
-			throw new RuntimeException(e);
-		}
-		return date;
-	}
+        int year = endCalendar.get(Calendar.YEAR)
+                - startCalendar.get(Calendar.YEAR);
+        int month = endCalendar.get(Calendar.MONTH)
+                - startCalendar.get(Calendar.MONTH);
 
-	/**
-	 * ������������������������������
-	 * 
-	 * @return
-	 */
-	public static Date getLastDayOfCurrMonth() {
-		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.MONTH, 1);
-		cal.set(Calendar.DAY_OF_MONTH, 0);
+        if ((startCalendar.get(Calendar.DATE) == 1)
+                && (temp.get(Calendar.DATE) == 1)) {
+            return year * 12 + month + 1;
+        } else if ((startCalendar.get(Calendar.DATE) != 1)
+                && (temp.get(Calendar.DATE) == 1)) {
+            return year * 12 + month;
+        } else if ((startCalendar.get(Calendar.DATE) == 1)
+                && (temp.get(Calendar.DATE) != 1)) {
+            return year * 12 + month;
+        } else {
+            return (year * 12 + month - 1) < 0 ? 0 : (year * 12 + month);
+        }
+    }
 
-		return cal.getTime();
-	}
+    /**
+     * @Description: ���������������������������������������
+     * @Param: [start, end]
+     * @return: java.util.List<java.lang.String>
+     * @Author: ���������
+     * @Date: 2021/9/23
+     */
+    public static List<String> getAllMonth(Date start, Date end) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(start);
+        // ���������������������������������
+        int startYear = calendar.get(Calendar.YEAR);
+        int startMonth = calendar.get(Calendar.MONTH);
+        // ���������������������������������
+        calendar.setTime(end);
+        int endYear = calendar.get(Calendar.YEAR);
+        int endMonth = calendar.get(Calendar.MONTH);
+        //
+        List<String> list = new ArrayList<String>();
 
-	/**
-	 * ���������������������������������������������������
-	 * 
-	 * @param date
-	 * @param m
-	 * @return
-	 */
-	public static String getDateAddMonth(String date, int m) {
-		DateFormat df = getDateFormat(yyyyMM_EN);
-		try {
-			Calendar cal = Calendar.getInstance();
-			cal.setTime(df.parse(date));
-			cal.add(Calendar.MONTH, m);
-			date = df.format(cal.getTime());
-		} catch (ParseException e) {
-			throw new RuntimeException(e);
-		}
-		return date;
-	}
+        for (int i = startYear; i <= endYear; i++) {
+            String date = "";
+            if (startYear == endYear) {
+                for (int j = startMonth; j <= endMonth; j++) {
+                    if (j < 9) {
+                        date = i + "-0" + (j + 1);
+                    } else {
+                        date = i + "-" + (j + 1);
+                    }
+                    list.add(date);
+                }
 
-	/**
-	 * ������������������������������
-	 * 
-	 * @param year
-	 * @param month
-	 * @return
-	 */
-	public static String getFirstDayOfMonth(int year, int month) {
-		Calendar cal = Calendar.getInstance();
-		// ������������
-		cal.set(Calendar.YEAR, year);
-		// ������������
-		cal.set(Calendar.MONTH, month - 1);
-		// ������������������������
-		int lastDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
-		// ������������������������������������
-		cal.set(Calendar.DAY_OF_MONTH, lastDay);
-		// ���������������
-		DateFormat df = getDateFormat(yyyy_MM_dd_EN);
-		return df.format(cal.getTime());
-	}
+            } else {
+                if (i == startYear) {
+                    for (int j = startMonth; j < 12; j++) {
+                        if (j < 9) {
+                            date = i + "-0" + (j + 1);
+                        } else {
+                            date = i + "-" + (j + 1);
+                        }
+                        list.add(date);
+                    }
+                } else if (i == endYear) {
+                    for (int j = 0; j <= endMonth; j++) {
+                        if (j < 9) {
+                            date = i + "-0" + (j + 1);
+                        } else {
+                            date = i + "-" + (j + 1);
+                        }
+                        list.add(date);
+                    }
+                } else {
+                    for (int j = 0; j < 12; j++) {
+                        if (j < 9) {
+                            date = i + "-0" + (j + 1);
+                        } else {
+                            date = i + "-" + (j + 1);
+                        }
+                        list.add(date);
+                    }
+                }
 
-	/**
-	 * ������������������������������
-	 * 
-	 * @param year
-	 * @param month
-	 * @return
-	 */
-	public static String getLastDayOfMonth(int year, int month) {
-		Calendar cal = Calendar.getInstance();
-		// ������������
-		cal.set(Calendar.YEAR, year);
-		// ������������
-		cal.set(Calendar.MONTH, month - 1);
-		// ������������������������
-		int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
-		// ������������������������������������
-		cal.set(Calendar.DAY_OF_MONTH, lastDay);
-		// ���������������
-		DateFormat df = getDateFormat(yyyy_MM_dd_EN);
-		return df.format(cal.getTime());
-	}
+            }
 
-	/**
-	 * ������������������
-	 * 
-	 * @param date
-	 * @return
-	 * @throws ParseException
-	 */
-	public static String getYesterday(Date date) throws ParseException {
-		DateFormat df = getDateFormat(yyyy_MM_dd_EN);
-		Calendar calendar = Calendar.getInstance();
-		calendar.setTime(df.parse(df.format(date)));
-		calendar.add(Calendar.DAY_OF_MONTH, -1);
-		return df.format(calendar.getTime());
-	}
+        }
 
+        return list;
+    }
 
-	/**
-	 * 10���������������������
-	 * 
-	 * @param dateInt
-	 * @param format
-	 * @return
-	 */
-	public static String getIntToStr(String dateInt, String format) {
-		DateFormat df = getDateFormat(format);
-		long times = Integer.parseInt(dateInt) * 1000L;
-		Date date = new Date(times);
-		return df.format(date);
-	}
+    /**
+     * @Description: ���������������������������������������
+     * @Param: [start, end]
+     * @return: java.util.List<java.lang.String>
+     * @Author: ���������
+     * @Date: 2021/9/23
+     */
+    public static List<String> getAllYear(Date start, Date end) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(start);
+        int startYear = calendar.get(Calendar.YEAR);
+        calendar.setTime(end);
+        int endYear = calendar.get(Calendar.YEAR);
 
-	/**
-	 * ������ 10������������
-	 * 
-	 * @return
-	 */
-	public static Integer getDateInt() {
-		return (int) (System.currentTimeMillis() / 1000);
-	}
+        List<String> list = new ArrayList<>();
+        list.add(String.valueOf(startYear));
 
-	/**
-	 * 13���������������������
-	 * 
-	 * @param time
-	 * @param format
-	 * @return
-	 */
-	public static String getLongToStr(long time, String format) {
-		Date date = new Date(time);
-		return dateToDateString(date, format);
-	}
+        int i = endYear - startYear;
 
-	/**
-	 * ������������������������������������
-	 * 
-	 * @param start
-	 * @param end
-	 * @return
-	 */
-	public static int getIntervalSec(int start, int end) {
-		return (end - start) * 60 * 60;
-	}
+        for (int j = 1; j < i + 1; j++) {
+            list.add(String.valueOf(startYear + j));
+        }
 
-	/**
-	 * ���������������������������������
-	 * 
-	 * @param time
-	 * @return
-	 */
-	public static String getMillsStr(long time) {
-		String timeStr = String.valueOf(time);
-		String suffix = timeStr.substring(0, timeStr.length() - 3);
-		String prefix = timeStr.substring(timeStr.length() - 3, timeStr.length());
-		return suffix + "." + prefix;
-	}
+        return list;
+    }
 
-	/**
-	 * ���������������������������������������������
-	 * 
-	 * @param timeStr
-	 * @param formatStr
-	 * @return
-	 */
-	public static String longToString(String timeStr, String formatStr) {
-		long times = Long.parseLong(timeStr.replace(".", ""));
-		Date date = new Date(times);
-		return dateToDateString(date, formatStr);
-	}
+    public static List<String> getAllDays(Date start, Date end) {
+        List<String> list = new ArrayList<String>();
+        SimpleDateFormat outformat = new SimpleDateFormat("yyyy-MM-dd");
 
-	/**
-	 * ������������������������
-	 * 
-	 * @return
-	 */
-	public static Long getTodayTime() {
-		Calendar todayStart = Calendar.getInstance();
-		todayStart.set(Calendar.HOUR_OF_DAY, 0);
-		todayStart.set(Calendar.MINUTE, 0);
-		todayStart.set(Calendar.SECOND, 0);
-		todayStart.set(Calendar.MILLISECOND, 0);
-		return todayStart.getTime().getTime();
-	}
+        Calendar sCalendar = Calendar.getInstance();
+        sCalendar.setTime(start);
+        int year = sCalendar.get(Calendar.YEAR);
+        int month = sCalendar.get(Calendar.MONTH);
+        int day = sCalendar.get(Calendar.DATE);
+        sCalendar.set(year, month, day, 0, 0, 0);
 
-	public static Integer getTodayInt() {
-		return (int) (getTodayTime() / 1000);
-	}
+        Calendar eCalendar = Calendar.getInstance();
+        eCalendar.setTime(end);
+        year = eCalendar.get(Calendar.YEAR);
+        month = eCalendar.get(Calendar.MONTH);
+        day = eCalendar.get(Calendar.DATE);
+        eCalendar.set(year, month, day, 0, 0, 0);
 
-	/**
-	 * ������������������������
-	 * 
-	 * @return
-	 */
-	public static Long getEndTime() {
-		Calendar todayEnd = Calendar.getInstance();
-		todayEnd.set(Calendar.HOUR, 23);
-		todayEnd.set(Calendar.MINUTE, 59);
-		todayEnd.set(Calendar.SECOND, 59);
-		todayEnd.set(Calendar.MILLISECOND, 999);
-		return todayEnd.getTime().getTime();
-	}
+        while (sCalendar.before(eCalendar)) {
+            list.add(outformat.format(sCalendar.getTime()));
+            sCalendar.add(Calendar.DAY_OF_YEAR, 1);
+        }
+        list.add(outformat.format(eCalendar.getTime()));
 
-	public static Integer getTomorrowInt() {
-		return (int) (getTomorrowTime() / 1000);
-	}
+        return list;
 
-	/**
-	 * ���������������������������
-	 * 
-	 * @return
-	 */
-	public static Long getTomorrowTime() {
-		Calendar cal = Calendar.getInstance();
-		cal.setTime(new Date());
-		cal.set(Calendar.HOUR_OF_DAY, 0);
-		cal.set(Calendar.MINUTE, 0);
-		cal.set(Calendar.SECOND, 0);
-		cal.set(Calendar.MILLISECOND, 0);
-		cal.add(Calendar.DAY_OF_MONTH, 1);
-		return cal.getTime().getTime();
-	}
+    }
 
-	/**
-	 * ���������������������������������
-	 * 
-	 * @param hour
-	 * @return
-	 */
-	public static Long getPointHourTime(int hour) {
-		Calendar todayStart = Calendar.getInstance();
-		todayStart.set(Calendar.HOUR_OF_DAY, hour);
-		todayStart.set(Calendar.MINUTE, 0);
-		todayStart.set(Calendar.SECOND, 0);
-		todayStart.set(Calendar.MILLISECOND, 0);
-		return todayStart.getTime().getTime();
-	}
 
-	/**
-	 * ������������n���������h������
-	 * 
-	 * @param days
-	 * @param hour
-	 * @return
-	 */
-	public static Long getPointDateHourTime(int days, int hour) {
-		Calendar todayStart = Calendar.getInstance();
-		todayStart.add(Calendar.DATE, days);
-		todayStart.set(Calendar.HOUR_OF_DAY, hour);
-		todayStart.set(Calendar.MINUTE, 0);
-		todayStart.set(Calendar.SECOND, 0);
-		todayStart.set(Calendar.MILLISECOND, 0);
-		return todayStart.getTime().getTime();
-	}
+    /**
+     * ������������ date
+     *
+     * @param longDate ���������
+     * @return
+     */
+    public static Date getConversionDateByLong(long longDate) {
+        //1529398742830
+        ZoneId zid = ZoneId.systemDefault();
+        LocalDateTime time = LocalDateTime.ofInstant(Instant.ofEpochMilli(longDate), zid);
+        ZonedDateTime zdt = time.atZone(zid);
+        Date date = Date.from(zdt.toInstant());
+        return date;
+    }
 
-	/**
-	 * ���������������������
-	 * 
-	 * @param time
-	 * @return
-	 */
-	public static Integer hourTosec(String time) {
-		if ("null".equals(time) || StringUtils.isEmpty(time)) {
-			return null;
-		}
-		if (time.length() <= 5) {
-			time += ":00";
-		}
-		int index1 = time.indexOf(":");
-		int index2 = time.indexOf(":", index1 + 1);
-		int hh = Integer.parseInt(time.substring(0, index1));
-		int mi = Integer.parseInt(time.substring(index1 + 1, index2));
-		int ss = Integer.parseInt(time.substring(index2 + 1));
-		return hh * 60 * 60 + mi * 60 + ss;
-	}
+    /**
+     * yyyyMMdd ��� yyyy_MM_dd
+     *
+     * @param strData ���������
+     * @return
+     */
+    public static String getdatefor_yyyy_MM_dd(String strData) {
+        //1529398742830
+        //20180205
+        String yyyy_MM_dd = "";
+        if (null == strData || strData.length() == 0) {
+            return yyyy_MM_dd;
+        } else {
+            String yyyy = strData.substring(0, 4);
+            String mm = strData.substring(4, 6);
+            String dd = strData.substring(6, 8);
+            yyyy_MM_dd = yyyy + "-" + mm + "-" + dd;
+        }
+        return yyyy_MM_dd;
+    }
 
-	/**
-	 * ���������������������
-	 * 
-	 * @param time
-	 * @return
-	 */
-	public static Integer minTosec(String time) {
-		if (time.length() <= 5) {
-			time += ":00";
-		}
-		int index1 = time.indexOf(":");
-		int index2 = time.indexOf(":", index1 + 1);
-		int mi = Integer.parseInt(time.substring(0, index1));
-		int ss = Integer.parseInt(time.substring(index1 + 1, index2));
-		return mi * 60 + ss;
-	}
+    public static String getdatefor_HH_mm_ss(String strData) {
+        //1529398742830
+        //20180205
+        String HH_mm_ss = "";
+        if (null == strData || strData.length() == 0) {
+            return HH_mm_ss;
+        } else {
+            String HH = strData.substring(0, 2);
+            String mm = strData.substring(2, 4);
+            String ss = strData.substring(4, 6);
+            HH_mm_ss = HH + ":" + mm + ":" + ss;
+        }
+        return HH_mm_ss;
+    }
 
+    /**
+     * yyyyMMdd
+     *
+     * @return
+     */
+    public static String getdatefor_yyyyMMdd() {
+        Date newdate = new Date();
+        SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd");
+        String date = dft.format(newdate);
+        return date;
+    }
 
+    /**
+     * yyyyMMdd
+     *
+     * @return
+     */
+    public static String getdatefor_yyyy_MM_dd() {
+        Date newdate = new Date();
+        SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
+        String date = dft.format(newdate);
+        return date;
+    }
 
-	public static boolean isDate(String dateTimeStr, String formatStr) {
-		DateFormat df = getDateFormat(formatStr);
-		try {
-			df.parse(dateTimeStr);
-			return true;
-		} catch (Exception e) {
-			return false;
-		}
-	}
+    //���������������������������������
+    public static Date dataToTimeStampTime(Date time, String dateFormat) {
+        String dateString = dateToDateString(time, dateFormat);
+        try {
+            return getDateFormat(dateFormat).parse(dateString);
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
+    }
 
-	/**
-	 * ���������������������������������
-	 * 
-	 * @param strDate
-	 *            ������������ yyyy-MM-dd HH:mm:ss
-	 * @param strDateBegin
-	 *            ������������ 00:00:00
-	 * @param strDateEnd
-	 *            ������������ 00:05:00
-	 * @return
-	 */
-	public static boolean isInDate(String strDate, String strDateBegin, String strDateEnd) {
-		// ���������������������������
-		int strDateH = Integer.parseInt(strDate.substring(11, 13));
-		int strDateM = Integer.parseInt(strDate.substring(14, 16));
-		int strDateS = Integer.parseInt(strDate.substring(17, 19));
-		// ���������������������������
-		int strDateBeginH = Integer.parseInt(strDateBegin.substring(0, 2));
-		int strDateBeginM = Integer.parseInt(strDateBegin.substring(3, 5));
-		int strDateBeginS = Integer.parseInt(strDateBegin.substring(6, 8));
-		// ���������������������������
-		int strDateEndH = Integer.parseInt(strDateEnd.substring(0, 2));
-		int strDateEndM = Integer.parseInt(strDateEnd.substring(3, 5));
-		int strDateEndS = Integer.parseInt(strDateEnd.substring(6, 8));
-		if ((strDateH >= strDateBeginH && strDateH <= strDateEndH)) {
-			// ������������������������������������������������������������������
-			if (strDateH > strDateBeginH && strDateH < strDateEndH) {
-				return true;
-				// ������������������������������������������������������������������������������������
-			} else if (strDateH == strDateBeginH && strDateM >= strDateBeginM && strDateM <= strDateEndM) {
-				return true;
-				// ������������������������������������������������������������������������������������������������������������������������
-			} else if (strDateH == strDateBeginH && strDateM == strDateBeginM && strDateS >= strDateBeginS
-					&& strDateS <= strDateEndS) {
-				return true;
-			}
-			// ���������������������������������������������������������������������������������������������������������������������������
-			else if (strDateH >= strDateBeginH && strDateH == strDateEndH && strDateM <= strDateEndM) {
-				return true;
-				// ������������������������������������������������������������������������������������������������������������������������������������������������������������
-			} else if (strDateH >= strDateBeginH && strDateH == strDateEndH && strDateM == strDateEndM
-					&& strDateS <= strDateEndS) {
-				return true;
-			} else {
-				return false;
-			}
-		} else {
-			return false;
-		}
-	}
+    //���������������
+    public static Date getLastWeekMonday() {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(getDate(getMondayOfThisWeek(), yyyy_MM_dd_EN));
+        cal.add(Calendar.DATE, -7);
+        return cal.getTime();
+    }
 
-	/**
-	 * ���������������������������������
-	 * 
-	 * @param date
-	 *            ������������ yyyy-MM-dd HH:mm:ss
-	 * @param strDateBegin
-	 *            ������������ 00:00:00
-	 * @param strDateEnd
-	 *            ������������ 00:05:00
-	 * @return
-	 */
-	public static boolean isInDate(Date date, String strDateBegin, String strDateEnd) {
-		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-		String strDate = sdf.format(date);
-		// ���������������������������
-		int strDateH = Integer.parseInt(strDate.substring(11, 13));
-		int strDateM = Integer.parseInt(strDate.substring(14, 16));
-		int strDateS = Integer.parseInt(strDate.substring(17, 19));
-		// ���������������������������
-		int strDateBeginH = Integer.parseInt(strDateBegin.substring(0, 2));
-		int strDateBeginM = Integer.parseInt(strDateBegin.substring(3, 5));
-		int strDateBeginS = Integer.parseInt(strDateBegin.substring(6, 8));
-		// ���������������������������
-		int strDateEndH = Integer.parseInt(strDateEnd.substring(0, 2));
-		int strDateEndM = Integer.parseInt(strDateEnd.substring(3, 5));
-		int strDateEndS = Integer.parseInt(strDateEnd.substring(6, 8));
-		if ((strDateH >= strDateBeginH && strDateH <= strDateEndH)) {
-			// ������������������������������������������������������������������
-			if (strDateH > strDateBeginH && strDateH < strDateEndH) {
-				return true;
-				// ������������������������������������������������������������������������������������
-			} else if (strDateH == strDateBeginH && strDateM >= strDateBeginM && strDateM <= strDateEndM) {
-				return true;
-				// ������������������������������������������������������������������������������������������������������������������������
-			} else if (strDateH == strDateBeginH && strDateM == strDateBeginM && strDateS >= strDateBeginS
-					&& strDateS <= strDateEndS) {
-				return true;
-			}
-			// ���������������������������������������������������������������������������������������������������������������������������
-			else if (strDateH >= strDateBeginH && strDateH == strDateEndH && strDateM <= strDateEndM) {
-				return true;
-				// ������������������������������������������������������������������������������������������������������������������������������������������������������������
-			} else if (strDateH >= strDateBeginH && strDateH == strDateEndH && strDateM == strDateEndM
-					&& strDateS <= strDateEndS) {
-				return true;
-			} else {
-				return false;
-			}
-		} else {
-			return false;
-		}
-	}
+    //���������������������
+    public static Date getFirstDayOfLastMonth() {
+        Calendar calendar = Calendar.getInstance();
+        calendar.add(Calendar.MONTH, -1);
+        calendar.set(Calendar.DAY_OF_MONTH, 1);
+        return getDate(dateToDateString(calendar.getTime(), yyyy_MM_dd_EN));
+    }
 
-	public static boolean isInTime(int time, int begin, int end) {
-		if (time >= begin && time < end) {
-			return true;
-		}
-		return false;
-	}
 
-	public static int getMinutest(String begin, String format) {
-		String nowMinutes = getCurDate("HH:mm");
-		long time = compareDateStr("09:00", nowMinutes, "HH:mm");
-		return (int) time;
-	}
+    /*���������������������*/
+    public static String getDateAddYear(String date, int year) {
+        DateFormat df = getDateFormat(yyyy);
+        try {
+            Calendar cal = Calendar.getInstance();
+            cal.setTime(df.parse(date));
+            cal.add(Calendar.YEAR, year);
+            date = df.format(cal.getTime());
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
+        return date;
+    }
 
-	/**
-	 * <p>
-	 * Title: addDays
-	 * </p>
-	 * <p>
-	 * Description: ������������
-	 * </p>
-	 * 
-	 * @param days
-	 * @return
-	 */
-	public static Date addDays(Date date, int days) {
-		Calendar calendar = Calendar.getInstance();
-		calendar.setTime(date);
-		calendar.add(Calendar.DATE, days);
-		return calendar.getTime();
-	}
+    /*
+     * ������������������������������������
+     * ������time=2021-08-04 ���������������������������������������2021-08-04 00���2021-08-04 01���������
+     *    time=2021-08 ���������������������������������
+     * */
+    public static List<String> getTimeLag(String time) {
+        List<String> result = new ArrayList<>();
+        int length = time.length();
+        Calendar cal = Calendar.getInstance();
+        String end;
+        String dateFormat;
+        String df;
+        int i;
+        if (length == 10) {//���
+            end = getDateAddDay(time, 1);
+            dateFormat = yyyy_MM_dd_HH_EN;
+            df = yyyy_MM_dd_EN;
+            i = Calendar.HOUR_OF_DAY;
+        } else if (length == 7) {//���
+            end = getDateAddMonth(time, 1);
+            dateFormat = yyyy_MM_dd_EN;
+            df = yyyy_MM_EN;
+            i = Calendar.DAY_OF_MONTH;
+        } else {//���
+            end = getDateAddYear(time, 1);
+            dateFormat = yyyy_MM_EN;
+            df = yyyy;
+            i = Calendar.MONTH;
+        }
+        cal.setTime(getDate(time, df));
+        for (long d = cal.getTimeInMillis(); d < getDate(end, df).getTime(); cal.set(i, cal.get(i) + 1), d = cal.getTimeInMillis()) {
+            String format = dateToDateString(new Date(d), dateFormat);
+            result.add(format);
+        }
+        return result;
+    }
 
-	/**
-	 * <p>
-	 * Title: addMonths
-	 * </p>
-	 * <p>
-	 * Description: ������������
-	 * </p>
-	 * 
-	 * @param date
-	 * @param months
-	 * @return
-	 */
-	public static Date addMonths(Date date, int months) {
-		Calendar calendar = Calendar.getInstance();
-		calendar.setTime(date);
-		calendar.add(Calendar.MONTH, months);
-		return calendar.getTime();
-	}
+    //������date���������������������������0���5���������������������2021-08-09 15:32:00->2021-08-09 15:30:00���2021-08-09 15:39:00->2021-08-09 15:35:00
+    public static Date getFiveMinuteDate(Date date) {
+        String dateString = dateToDateString(date, yyyy_MM_dd_HH_mm_EN);
+        String minute = dateString.substring(15, 16);
+        int i = Integer.parseInt(minute);
+        if (i > 0 && i < 5) {
+            i = 0;
+        } else if (i > 5 && i <= 9) {
+            i = 5;
+        }
+        StringBuilder stringBuffer = new StringBuilder(dateString);
+        stringBuffer.replace(15, 16, String.valueOf(i));
+        return getDate(stringBuffer.toString(), yyyy_MM_dd_HH_mm_EN);
+    }
 
-	/**
-	 * <p>
-	 * Title: getDays
-	 * </p>
-	 * <p>
-	 * Description: ���������������������������������������
-	 * </p>
-	 * 
-	 * @param minDate
-	 * @param maxDate
-	 * @return
-	 */
-	public static int getDays(Date minDate, Date maxDate) {
-		int days = 0;
-		if (null == minDate || null == maxDate)
-			return days;
-		days = (int) ((maxDate.getTime() - minDate.getTime()) / (24 * 60 * 60 * 1000));
-		return days;
-	}
+    //������������������hours���������������
+    public static Date addHours(Date date, int hours) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.add(Calendar.HOUR_OF_DAY, hours);
+        return calendar.getTime();
+    }
 
-	/**
-	 * ������������ date
-	 * 
-	 * @param longDate ���������
-	 * @return
-	 */
-	public static Date getConversionDateByLong(long longDate) {
-		//1529398742830
-		ZoneId zid = ZoneId.systemDefault();
-		LocalDateTime time = LocalDateTime.ofInstant(Instant.ofEpochMilli(longDate), zid);
-		ZonedDateTime zdt = time.atZone(zid);
-		Date date = Date.from(zdt.toInstant());
-		return date;
-	}
-	
-	/**
-	 * yyyyMMdd ��� yyyy_MM_dd
-	 * 
-	 * @param strData ���������
-	 * @return
-	 */
-	public static String getdatefor_yyyy_MM_dd(String  strData) {
-		//1529398742830
-		//20180205
-		String yyyy_MM_dd="";
-		if (null == strData ||  strData.length()==0) {
-			return yyyy_MM_dd;
-		}else {
-			String yyyy = strData.substring(0, 4);
-			String mm = strData.substring(4, 6);
-			String dd = strData.substring(6, 8);
-			yyyy_MM_dd = yyyy+"-"+mm +"-"+dd;
-		}		
-		return yyyy_MM_dd;
-	}
-	
-	public static String getdatefor_HH_mm_ss(String  strData) {
-		//1529398742830
-		//20180205
-		String HH_mm_ss="";
-		if (null == strData ||  strData.length()==0) {
-			return HH_mm_ss;
-		}else {
-			String HH = strData.substring(0, 2);
-			String mm = strData.substring(2, 4);
-			String ss = strData.substring(4, 6);
-			HH_mm_ss = HH+":"+mm +":"+ss;
-		}		
-		return HH_mm_ss;
-	}
-	
-	/**
-	 * yyyyMMdd
-	 * 
-	 * @return
-	 */
-	public static String getdatefor_yyyyMMdd() {
-		Date newdate = new Date();
-		SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd");
-		String  date = dft.format(newdate);	
-		return date;
-	}
-	
-	/**
-	 * yyyyMMdd
-	 * 
-	 * @return
-	 */
-	public static String getdatefor_yyyy_MM_dd() {
-		Date newdate = new Date();
-		SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
-		String  date = dft.format(newdate);	
-		return date;
-	}
-	
-	
-	
-	public static void main(String[] args) {
-		Date newdate = new Date();
-		SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd");
-		String  date = dft.format(newdate);	
-		System.out.println(date);
-//		return endDate;
-	}
+    //������������Date
+    public static Date getFirstDayOfLastYear() {
+        String lastYear = getDateAddYear(DateUtils.dateToDateString(getDate(), DateUtils.yyyy), -1);
+        return DateUtils.getDate(lastYear, DateUtils.yyyy);
+    }
 }

--
Gitblit v1.8.0