From 27e6bc3df3e39e0d0b147b155a89ad6837ea972b Mon Sep 17 00:00:00 2001 From: cjl <909710561@qq.com> Date: Mon, 06 Jan 2025 09:19:24 +0800 Subject: [PATCH] Merge branch 'cjl' into dev --- screen-common/src/main/java/com/moral/util/DateUtils.java | 720 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 657 insertions(+), 63 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 cbc63a2..cca005b 100644 --- a/screen-common/src/main/java/com/moral/util/DateUtils.java +++ b/screen-common/src/main/java/com/moral/util/DateUtils.java @@ -1,6 +1,7 @@ package com.moral.util; +import lombok.extern.slf4j.Slf4j; import org.springframework.util.StringUtils; import java.math.BigDecimal; @@ -13,8 +14,12 @@ import java.time.ZonedDateTime; import java.util.*; - +@Slf4j public class DateUtils { + /** + * ������������(yyyy) + */ + public static final String yyyy = "yyyy"; /** * ������������(yyyy-MM-dd) */ @@ -67,11 +72,185 @@ * ������������(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"; + /* + * ������������(MM-dd) + * */ + public static final String MM_dd_EN = "MM-dd"; + + /* + * 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>(); + + /** + * @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(); + } + + /** + * @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(); + } + + /** + * @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; + } + + /** + * @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; + } + + + /** + * @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(); + } + + /** + * @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(); + } + + /** + * @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(); + } + + /** + * @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(); + } + + + /** + * @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; + } + } /** * ������DateFormat @@ -112,7 +291,7 @@ } /** - * ������dateTimeStr���Date������ + * ������dateTimeStr���Date������ ������������ * * @param dateTimeStr * @return @@ -263,7 +442,7 @@ } /** - * ������������"yyyy-MM-dd HH:mm:ss"������������������������������������������,time2-time1 + * ������������"yyyy-MM-dd"������������������������������������������,time2-time1 * * @param time1 * @param time2 @@ -274,6 +453,20 @@ Date d2 = getDate(time2); return d2.getTime() - d1.getTime(); } + + /** + * ������������"yyyy-MM-dd HH:mm:ss"������������������������������������������,time2-time1 + * + * @param time1 + * @param time2 + * @return + */ + public static long compareDateStrDay(String time1, String time2) { + Date d1 = getDate(time1,DateUtils.yyyy_MM_dd_HH_mm_ss_EN); + Date d2 = getDate(time2,DateUtils.yyyy_MM_dd_HH_mm_ss_EN); + return d2.getTime() - d1.getTime(); + } + /** * ��������������������������������������� @@ -328,6 +521,14 @@ } } + public static boolean isTimeBeforE(Date nows, Date date) { + long hous = nows.getTime() - date.getTime(); + if (hous >= 0) { + return true; + } else { + return false; + } + } /** * ������������������������������������������������������ * @@ -427,6 +628,7 @@ return dateToDateString(now.getTime(), formatStr); } + /** * ������������������day���������������(formatStr)������������ * @@ -442,15 +644,31 @@ return dateToDateString(now.getTime(), formatStr); } + /** - * @Description: ������������������day��������������� - * @Param: [date, day] - * @return: java.util.Date - * @Author: ��������� - * @Date: 2021/3/30 - */ + * ������������������day���������������(formatStr)������������ + * + * @param date + * @param date, + * @param hours + * @return + */ + public static Date getDateAddHour(Date date,int hours) { + Calendar now = Calendar.getInstance(TimeZone.getDefault()); + now.setTime(date); + now.add(Calendar.HOUR_OF_DAY, hours); + return now.getTime(); + } + + /** + * @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) + if (date == null) return null; Calendar now = Calendar.getInstance(TimeZone.getDefault()); now.setTime(date); @@ -474,6 +692,8 @@ } return new Date(); } + + public static String getAfterNDays(Date date, int n, String formateStr) { SimpleDateFormat sdf = new SimpleDateFormat(formateStr); @@ -738,8 +958,8 @@ * @param days * @return */ - public static String getDateAddDay(String date, int days, String format) { - DateFormat df = getDateFormat(format); + 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)); @@ -753,6 +973,108 @@ } /** + * ������������������������ + * + * @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_MONTH, 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; + } + + /* + * ��������������������������� + * */ + public static boolean isCurrentMonth(Date date) { + Calendar cal = Calendar.getInstance(); + cal.setTime(new Date()); + int currentYear = cal.get(Calendar.MONTH); + cal.setTime(date); + int year = cal.get(Calendar.MONTH); + return year == currentYear; + } + + + /** * ������������������������������ * * @return @@ -761,8 +1083,15 @@ 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)); + } - return cal.getTime(); + public static Date getLastDayOfCurrMonth(Date time) { + Calendar cal = Calendar.getInstance(); + cal.setTime(time); + cal.add(Calendar.MONTH, 1); + cal.set(Calendar.DAY_OF_MONTH, 0); + return getDate(dateToDateString(cal.getTime(), yyyy_MM_dd_EN)); } /** @@ -773,7 +1102,7 @@ * @return */ public static String getDateAddMonth(String date, int m) { - DateFormat df = getDateFormat(yyyyMM_EN); + DateFormat df = getDateFormat(yyyy_MM_EN); try { Calendar cal = Calendar.getInstance(); cal.setTime(df.parse(date)); @@ -783,50 +1112,6 @@ throw new RuntimeException(e); } return 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()); - } - - /** - * ������������������������������ - * - * @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()); } /** @@ -844,6 +1129,18 @@ 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��������������������� @@ -930,6 +1227,7 @@ todayStart.set(Calendar.MILLISECOND, 0); return todayStart.getTime().getTime(); } + public static Integer getTodayInt() { return (int) (getTodayTime() / 1000); @@ -1198,6 +1496,14 @@ return calendar.getTime(); } + //������������ + public static Date addYears(Date date, int years) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.YEAR, years); + return calendar.getTime(); + } + /** * <p> * Title: getDays @@ -1217,6 +1523,170 @@ days = (int) ((maxDate.getTime() - minDate.getTime()) / (24 * 60 * 60 * 1000)); return 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); + + int year = endCalendar.get(Calendar.YEAR) + - startCalendar.get(Calendar.YEAR); + int month = endCalendar.get(Calendar.MONTH) + - startCalendar.get(Calendar.MONTH); + + 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); + } + } + + /** + * @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>(); + + 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); + } + + } 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); + } + } + + } + + } + + return list; + } + + /** + * @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); + + List<String> list = new ArrayList<>(); + list.add(String.valueOf(startYear)); + + int i = endYear - startYear; + + for (int j = 1; j < i + 1; j++) { + list.add(String.valueOf(startYear + j)); + } + + return list; + } + + public static List<String> getAllDays(Date start, Date end) { + List<String> list = new ArrayList<String>(); + SimpleDateFormat outformat = new SimpleDateFormat("yyyy-MM-dd"); + + 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); + + 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); + + while (sCalendar.before(eCalendar)) { + list.add(outformat.format(sCalendar.getTime())); + sCalendar.add(Calendar.DAY_OF_YEAR, 1); + } + list.add(outformat.format(eCalendar.getTime())); + + return list; + + } + /** * ������������ date @@ -1293,11 +1763,135 @@ return date; } + //��������������������������������� + 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); + } + } - public static void main(String[] args) throws InterruptedException { - Date date1 = new Date(); - Thread.sleep(1000); - Date date2 = new Date(); - System.out.println(DateUtils.compareDateStr(date1, date2)); + //��������������� + public static Date getLastWeekMonday() { + Calendar cal = Calendar.getInstance(); + cal.setTime(getDate(getMondayOfThisWeek(), yyyy_MM_dd_EN)); + cal.add(Calendar.DATE, -7); + return cal.getTime(); + } + + //��������������������� + 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 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; + } + + /* + * ������������������������������������ + * ������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; + } + + //������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); + } + + //������������������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 + public static Date getFirstDayOfLastYear() { + String lastYear = getDateAddYear(DateUtils.dateToDateString(getDate(), DateUtils.yyyy), -1); + return DateUtils.getDate(lastYear, DateUtils.yyyy); + } + //������������������ + public static Date getFirstDayOfLastYear(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.YEAR, -1); + return calendar.getTime(); + } + + //��������������������������������������������������� + public static Map<Date, List<Integer>> getBeforeAndAfterHourDate(Date date) { + String s = dateToDateString(date, yyyy_MM_dd_EN); + List<String> timeLag = getTimeLag(s); + Map<Date, List<Integer>> result = new HashMap<>(); + for (String s1 : timeLag) { + List<Integer> objects = new ArrayList<>(); + Date current = getDate(s1, yyyy_MM_dd_HH_EN); + Date before = addHours(current, -1); + Date after = addHours(current, 1); + objects.add(getHour(before)); + objects.add(getHour(current)); + objects.add(getHour(after)); + result.put(current, objects); + } + return result; } } -- Gitblit v1.8.0