From 531dc517028e2fda0e8477429cc7c835be9f7d28 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Mon, 27 Sep 2021 15:26:16 +0800
Subject: [PATCH] 5分钟统计任务,数据time改为开始时间
---
screen-common/src/main/java/com/moral/util/DateUtils.java | 350 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 342 insertions(+), 8 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 7fe7e86..d6a03cb 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,7 +14,7 @@
import java.time.ZonedDateTime;
import java.util.*;
-
+@Slf4j
public class DateUtils {
/**
* ������������(yyyy)
@@ -79,11 +80,167 @@
* ������������(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.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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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
@@ -438,6 +595,7 @@
now.add(Calendar.MONTH, mon);
return dateToDateString(now.getTime(), formatStr);
}
+
/**
* ������������������day���������������(formatStr)������������
@@ -1241,6 +1399,170 @@
}
/**
+ * @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
*
* @param longDate ���������
@@ -1358,7 +1680,7 @@
/*
* ������������������������������������
- * ������time=2021-08-04 ���������������������������������������
+ * ������time=2021-08-04 ���������������������������������������2021-08-04 00���2021-08-04 01���������
* time=2021-08 ���������������������������������
* */
public static List<String> getTimeLag(String time) {
@@ -1367,23 +1689,27 @@
Calendar cal = Calendar.getInstance();
String end;
String dateFormat;
+ String df;
int i;
if (length == 10) {//���
end = getDateAddDay(time, 1);
- dateFormat = yyyy_MM_dd_EN;
+ 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_EN;
+ dateFormat = yyyy_MM_dd_EN;
+ df = yyyy_MM_EN;
i = Calendar.DAY_OF_MONTH;
} else {//���
end = getDateAddYear(time, 1);
- dateFormat = yyyy;
+ dateFormat = yyyy_MM_EN;
+ df = yyyy;
i = Calendar.MONTH;
}
- cal.setTime(getDate(time, dateFormat));
- for (long d = cal.getTimeInMillis(); d < getDate(end, dateFormat).getTime(); cal.set(i, cal.get(i) + 1), d = cal.getTimeInMillis()) {
- String format = dateToDateString(new Date(d));
+ 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;
@@ -1403,4 +1729,12 @@
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();
+ }
}
--
Gitblit v1.8.0