From 9cc9f173f8db89135610eba2c8af79c17b24dfdf Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Wed, 08 Sep 2021 17:21:19 +0800 Subject: [PATCH] screen-api 增加获取组织所有无人机飞行时间接口 --- screen-common/src/main/java/com/moral/util/DateUtils.java | 152 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 146 insertions(+), 6 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 495e929..7b313a8 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) */ @@ -75,11 +80,53 @@ * ������������(yyyy-MM-dd HH) * */ public static final String yyyy_MM_dd_HH_EN = "yyyy-MM-dd HH"; + + /* + * 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.List<java.util.Date> + * @Author: ��������� + * @Date: 2021/9/8 + */ + public static List<Date> dateToStartAndEndTime(Date date){ + String dateStr = dateToDateString(date, "yyyy-MM-dd"); + String startDateStr = dateStr+" 00:00:00"; + String endDateStr = dateStr+" 23:59:59"; + Date startDate = getDate(startDateStr, "yyyy-MM-dd HH:mm:ss"); + Date endDate = getDate(endDateStr, "yyyy-MM-dd HH:mm:ss"); + ArrayList<Date> dates = new ArrayList<>(); + dates.add(startDate); + dates.add(endDate); + return dates; + } + + + /** + * @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 @@ -746,8 +793,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)); @@ -761,6 +808,17 @@ } /** + * ������������������������ + * + * @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)); + } + + /** * ������������������������������ * * @return @@ -769,8 +827,7 @@ Calendar cal = Calendar.getInstance(); cal.add(Calendar.MONTH, 1); cal.set(Calendar.DAY_OF_MONTH, 0); - - return cal.getTime(); + return getDate(dateToDateString(cal.getTime(), yyyy_MM_dd_EN)); } /** @@ -781,7 +838,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)); @@ -1310,4 +1367,87 @@ throw new RuntimeException(e); } } + + //��������������� + 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); + } } -- Gitblit v1.8.0