# Conflicts: # src/main/java/org/springblade/modules/business/service/IWorkOrderService.java # src/main/java/org/springblade/modules/business/service/impl/WorkOrderServiceImpl.javamaster
commit
e3f06f322b
18 changed files with 1008 additions and 74 deletions
@ -0,0 +1,811 @@ |
||||
|
||||
package org.springblade.common.utils; |
||||
|
||||
import org.springblade.core.tool.utils.DateUtil; |
||||
import org.springblade.core.tool.utils.Func; |
||||
import org.springblade.core.tool.utils.StringUtil; |
||||
|
||||
import java.text.DateFormat; |
||||
import java.text.ParseException; |
||||
import java.text.SimpleDateFormat; |
||||
import java.util.ArrayList; |
||||
import java.util.Calendar; |
||||
import java.util.Date; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 通用工具类 |
||||
* |
||||
* @author Chill |
||||
*/ |
||||
public class CommonDateUtil { |
||||
/** |
||||
* 获取 当前年、半年、季度、月、日、小时 开始结束时间 |
||||
*/ |
||||
private final static SimpleDateFormat FORMAT_YMD = new SimpleDateFormat("yyyy-MM-dd"); |
||||
private final static SimpleDateFormat FORMAT_YMDHM = new SimpleDateFormat("yyyy-MM-dd HH"); |
||||
private final static SimpleDateFormat FORMAT_YMDHMS = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
|
||||
public static Date getNow() { |
||||
return DateUtil.now(); |
||||
} |
||||
|
||||
public static String getNowString() { |
||||
return FORMAT_YMDHMS.format(DateUtil.now()); |
||||
} |
||||
|
||||
/** |
||||
* 获得本周的第一天,周一 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static Date getCurrentWeekDayStartTime() { |
||||
Calendar c = Calendar.getInstance(); |
||||
try { |
||||
int weekday = c.get(Calendar.DAY_OF_WEEK) - 2; |
||||
c.add(Calendar.DATE, -weekday); |
||||
c.setTime(FORMAT_YMDHMS.parse(FORMAT_YMD.format(c.getTime()) + " 00:00:00")); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return c.getTime(); |
||||
} |
||||
|
||||
/** |
||||
* 获得本周的最后一天,周日 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static Date getCurrentWeekDayEndTime() { |
||||
Calendar c = Calendar.getInstance(); |
||||
try { |
||||
int weekday = c.get(Calendar.DAY_OF_WEEK); |
||||
c.add(Calendar.DATE, 8 - weekday); |
||||
c.setTime(FORMAT_YMDHMS.parse(FORMAT_YMD.format(c.getTime()) + " 23:59:59")); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return c.getTime(); |
||||
} |
||||
|
||||
/** |
||||
* 获得天的开始时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static Date getDayStartTime(Date date) { |
||||
try { |
||||
Calendar cal = Calendar.getInstance(); |
||||
cal.setTime(date); |
||||
cal.set(Calendar.HOUR_OF_DAY, 0); |
||||
cal.set(Calendar.MINUTE, 0); |
||||
cal.set(Calendar.SECOND, 0); |
||||
return cal.getTime(); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
/** |
||||
* 获得天的开始时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static String getDayStartTimeString(Date date, String formatStr) { |
||||
formatStr = StringUtil.isBlank(formatStr) ? DateUtil.PATTERN_DATETIME : formatStr; |
||||
try { |
||||
Calendar cal = Calendar.getInstance(); |
||||
cal.setTime(date); |
||||
cal.set(Calendar.HOUR_OF_DAY, 0); |
||||
cal.set(Calendar.MINUTE, 0); |
||||
cal.set(Calendar.SECOND, 0); |
||||
SimpleDateFormat sdf = new SimpleDateFormat(formatStr); |
||||
return sdf.format(cal.getTime()); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
/** |
||||
* 获得天的结束时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static String getDayEndTimeString(Date date, String formatStr) { |
||||
formatStr = StringUtil.isBlank(formatStr) ? DateUtil.PATTERN_DATETIME : formatStr; |
||||
try { |
||||
Calendar cal = Calendar.getInstance(); |
||||
cal.setTime(date); |
||||
cal.set(Calendar.HOUR_OF_DAY, 23); |
||||
cal.set(Calendar.MINUTE, 59); |
||||
cal.set(Calendar.SECOND, 59); |
||||
SimpleDateFormat sdf = new SimpleDateFormat(formatStr); |
||||
return sdf.format(cal.getTime()); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
/** |
||||
* 获得本小时的开始时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static Date getCurrentHourStartTime() { |
||||
Date now = new Date(); |
||||
try { |
||||
now = FORMAT_YMDHMS.parse(FORMAT_YMDHM.format(now) + ":00:00"); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return now; |
||||
} |
||||
|
||||
/** |
||||
* 获得本小时的结束时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static Date getCurrentHourEndTime() { |
||||
Date now = new Date(); |
||||
try { |
||||
now = FORMAT_YMDHMS.parse(FORMAT_YMDHM.format(now) + ":59:59"); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return now; |
||||
} |
||||
|
||||
/** |
||||
* 获得月的开始时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static Date getCurrentMonthStartTime() { |
||||
Calendar c = Calendar.getInstance(); |
||||
Date now = null; |
||||
try { |
||||
c.set(Calendar.DATE, 1); |
||||
c.set(Calendar.HOUR_OF_DAY, 0); |
||||
c.set(Calendar.MINUTE, 0); |
||||
c.set(Calendar.SECOND, 0); |
||||
now = c.getTime(); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return now; |
||||
} |
||||
|
||||
/** |
||||
* 获得月的开始时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static String getCurrentMonthStartTimeStr() { |
||||
Calendar c = Calendar.getInstance(); |
||||
String now = null; |
||||
try { |
||||
c.set(Calendar.DATE, 1); |
||||
now = FORMAT_YMD.format(c.getTime()) + " 00:00:00"; |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return now; |
||||
} |
||||
|
||||
/** |
||||
* 本月的结束时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static Date getCurrentMonthEndTime() { |
||||
Calendar c = Calendar.getInstance(); |
||||
Date now = null; |
||||
try { |
||||
c.set(Calendar.DATE, 1); |
||||
c.add(Calendar.MONTH, 1); |
||||
c.add(Calendar.DATE, -1); |
||||
now = FORMAT_YMDHMS.parse(FORMAT_YMD.format(c.getTime()) + " 23:59:59"); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return now; |
||||
} |
||||
|
||||
/** |
||||
* 本月的结束时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static String getCurrentMonthEndTimeStr() { |
||||
Calendar c = Calendar.getInstance(); |
||||
String now = null; |
||||
try { |
||||
c.set(Calendar.DATE, 1); |
||||
c.add(Calendar.MONTH, 1); |
||||
c.add(Calendar.DATE, -1); |
||||
now = FORMAT_YMD.format(c.getTime()) + " 23:59:59"; |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return now; |
||||
} |
||||
|
||||
/** |
||||
* 当前年的开始时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static Date getCurrentYearStartTime() { |
||||
Calendar c = Calendar.getInstance(); |
||||
Date now = null; |
||||
try { |
||||
c.set(Calendar.MONTH, 0); |
||||
c.set(Calendar.DATE, 1); |
||||
now = FORMAT_YMD.parse(FORMAT_YMD.format(c.getTime())); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return now; |
||||
} |
||||
|
||||
/** |
||||
* 去年的开始时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static Date getCurrentOnYearStartTime() { |
||||
Calendar c = Calendar.getInstance(); |
||||
Date now = null; |
||||
try { |
||||
c.set(Calendar.YEAR, c.get(Calendar.YEAR) - 1); |
||||
c.set(Calendar.MONTH, 0); |
||||
c.set(Calendar.DATE, 1); |
||||
now = FORMAT_YMD.parse(FORMAT_YMD.format(c.getTime())); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return now; |
||||
} |
||||
|
||||
/** |
||||
* 当前年的结束时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static Date getCurrentYearEndTime() { |
||||
Calendar c = Calendar.getInstance(); |
||||
Date now = null; |
||||
try { |
||||
c.set(Calendar.MONTH, 11); |
||||
c.set(Calendar.DATE, 31); |
||||
now = FORMAT_YMDHMS.parse(FORMAT_YMD.format(c.getTime()) + " 23:59:59"); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return now; |
||||
} |
||||
|
||||
/** |
||||
* 去年的结束时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static Date getCurrentOnYearEndTime() { |
||||
Calendar c = Calendar.getInstance(); |
||||
Date now = null; |
||||
try { |
||||
c.set(Calendar.YEAR, c.get(Calendar.YEAR) - 1); |
||||
c.set(Calendar.MONTH, 11); |
||||
c.set(Calendar.DATE, 31); |
||||
now = FORMAT_YMDHMS.parse(FORMAT_YMD.format(c.getTime()) + " 23:59:59"); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return now; |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 当前季度的开始时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static Date getCurrentQuarterStartTime() { |
||||
Calendar c = Calendar.getInstance(); |
||||
int currentMonth = c.get(Calendar.MONTH) + 1; |
||||
Date now = null; |
||||
try { |
||||
if (currentMonth >= 1 && currentMonth <= 3) |
||||
c.set(Calendar.MONTH, 0); |
||||
else if (currentMonth >= 4 && currentMonth <= 6) |
||||
c.set(Calendar.MONTH, 3); |
||||
else if (currentMonth >= 7 && currentMonth <= 9) |
||||
c.set(Calendar.MONTH, 4); |
||||
else if (currentMonth >= 10 && currentMonth <= 12) |
||||
c.set(Calendar.MONTH, 9); |
||||
c.set(Calendar.DATE, 1); |
||||
now = FORMAT_YMDHMS.parse(FORMAT_YMD.format(c.getTime()) + " 00:00:00"); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return now; |
||||
} |
||||
|
||||
/** |
||||
* 当前季度的结束时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static Date getCurrentQuarterEndTime() { |
||||
Calendar c = Calendar.getInstance(); |
||||
int currentMonth = c.get(Calendar.MONTH) + 1; |
||||
Date now = null; |
||||
try { |
||||
if (currentMonth >= 1 && currentMonth <= 3) { |
||||
c.set(Calendar.MONTH, 2); |
||||
c.set(Calendar.DATE, 31); |
||||
} else if (currentMonth >= 4 && currentMonth <= 6) { |
||||
c.set(Calendar.MONTH, 5); |
||||
c.set(Calendar.DATE, 30); |
||||
} else if (currentMonth >= 7 && currentMonth <= 9) { |
||||
c.set(Calendar.MONTH, 8); |
||||
c.set(Calendar.DATE, 30); |
||||
} else if (currentMonth >= 10 && currentMonth <= 12) { |
||||
c.set(Calendar.MONTH, 11); |
||||
c.set(Calendar.DATE, 31); |
||||
} |
||||
now = FORMAT_YMDHMS.parse(FORMAT_YMD.format(c.getTime()) + " 23:59:59"); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return now; |
||||
} |
||||
|
||||
/** |
||||
* 获取前/后半年的开始时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static Date getHalfYearStartTime() { |
||||
Calendar c = Calendar.getInstance(); |
||||
int currentMonth = c.get(Calendar.MONTH) + 1; |
||||
Date now = null; |
||||
try { |
||||
if (currentMonth >= 1 && currentMonth <= 6) { |
||||
c.set(Calendar.MONTH, 0); |
||||
} else if (currentMonth >= 7 && currentMonth <= 12) { |
||||
c.set(Calendar.MONTH, 6); |
||||
} |
||||
c.set(Calendar.DATE, 1); |
||||
now = FORMAT_YMDHMS.parse(FORMAT_YMD.format(c.getTime()) + " 00:00:00"); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return now; |
||||
|
||||
} |
||||
|
||||
/** |
||||
* 获取前/后半年的结束时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static Date getHalfYearEndTime() { |
||||
Calendar c = Calendar.getInstance(); |
||||
int currentMonth = c.get(Calendar.MONTH) + 1; |
||||
Date now = null; |
||||
try { |
||||
if (currentMonth >= 1 && currentMonth <= 6) { |
||||
c.set(Calendar.MONTH, 5); |
||||
c.set(Calendar.DATE, 30); |
||||
} else if (currentMonth >= 7 && currentMonth <= 12) { |
||||
c.set(Calendar.MONTH, 11); |
||||
c.set(Calendar.DATE, 31); |
||||
} |
||||
now = FORMAT_YMDHMS.parse(FORMAT_YMD.format(c.getTime()) + " 23:59:59"); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return now; |
||||
} |
||||
|
||||
/** |
||||
* 获得本月的开始时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static Date getMonthStartTime(String dateStr, String pattern) { |
||||
Calendar c = Calendar.getInstance(); |
||||
c.setTime(DateUtil.parse(dateStr, pattern)); |
||||
Date now = null; |
||||
try { |
||||
c.set(Calendar.DATE, 1); |
||||
now = FORMAT_YMD.parse(FORMAT_YMD.format(c.getTime())); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return now; |
||||
} |
||||
|
||||
/** |
||||
* 获得本月的开始时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static String getMonthStartTimeStr(Date date, String pattern) { |
||||
Calendar c = Calendar.getInstance(); |
||||
c.setTime(date); |
||||
String now = null; |
||||
try { |
||||
c.set(Calendar.DATE, 1); |
||||
now = FORMAT_YMD.format(c.getTime()) + " 00:00:00"; |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return now; |
||||
} |
||||
|
||||
/** |
||||
* 本月的结束时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static Date getMonthEndTime(String dateStr, String pattern) { |
||||
Calendar c = Calendar.getInstance(); |
||||
c.setTime(DateUtil.parse(dateStr, pattern)); |
||||
Date now = null; |
||||
try { |
||||
c.set(Calendar.DATE, 1); |
||||
c.add(Calendar.MONTH, 1); |
||||
c.add(Calendar.DATE, -1); |
||||
now = FORMAT_YMDHMS.parse(FORMAT_YMD.format(c.getTime()) + " 23:59:59"); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return now; |
||||
} |
||||
|
||||
/** |
||||
* 本月的结束时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static String getMonthEndTimeStr(Date date, String pattern) { |
||||
Calendar c = Calendar.getInstance(); |
||||
c.setTime(date); |
||||
String now = ""; |
||||
try { |
||||
c.set(Calendar.DATE, 1); |
||||
c.add(Calendar.MONTH, 1); |
||||
c.add(Calendar.DATE, -1); |
||||
now = FORMAT_YMD.format(c.getTime()) + " 23:59:59"; |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
return now; |
||||
} |
||||
|
||||
/** |
||||
* 获得本年的开始时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static String getYearStartTimeStr(Date date) { |
||||
Calendar c = Calendar.getInstance(); |
||||
c.setTime(date); |
||||
return c.get(Calendar.YEAR) + "-01-01 00:00:00"; |
||||
} |
||||
|
||||
/** |
||||
* 本年的结束时间 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static String getYearEndTimeStr(Date date) { |
||||
Calendar c = Calendar.getInstance(); |
||||
c.setTime(date); |
||||
return c.get(Calendar.YEAR) + "-12-31 23:59:59"; |
||||
} |
||||
|
||||
/** |
||||
* 获取当天指定时间 |
||||
* |
||||
* @param date |
||||
* @param num |
||||
* @return |
||||
*/ |
||||
public static Date getDayByNum(Date date, Integer num) { |
||||
Calendar calendar = Calendar.getInstance(); |
||||
calendar.setTime(date); |
||||
calendar.add(Calendar.DATE, num); |
||||
|
||||
return calendar.getTime(); |
||||
} |
||||
|
||||
/** |
||||
* 获取当天指定时间 |
||||
* |
||||
* @param num |
||||
* @return |
||||
*/ |
||||
public static Date getDayByNum(Integer num) { |
||||
Calendar calendar = Calendar.getInstance(); |
||||
calendar.setTime(getNow()); |
||||
calendar.add(Calendar.DATE, -num); |
||||
|
||||
return calendar.getTime(); |
||||
} |
||||
|
||||
/** |
||||
* 获取当天指定时间 |
||||
* |
||||
* @param date |
||||
* @param num |
||||
* @return |
||||
*/ |
||||
public static Date getHoursByNum(Date date, Integer num) { |
||||
Calendar calendar = Calendar.getInstance(); |
||||
calendar.setTime(date); |
||||
calendar.add(Calendar.HOUR_OF_DAY, num); |
||||
|
||||
return calendar.getTime(); |
||||
} |
||||
|
||||
/** |
||||
* 获取最近12个月,经常用于统计图表的X轴 |
||||
*/ |
||||
public static String[] getLast12Months() { |
||||
String[] last12Months = new String[12]; |
||||
|
||||
Calendar cal = Calendar.getInstance(); |
||||
|
||||
// 要先+1,才能把本月的算进去
|
||||
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) + 1); |
||||
|
||||
for (int i = 0; i < 12; i++) { |
||||
// 逐次往前推1个月
|
||||
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) - 1); |
||||
last12Months[11 - i] = cal.get(Calendar.YEAR) + "-" + String.format("%0" + (cal.get(Calendar.MONTH) + 1) + "d", 2); |
||||
|
||||
} |
||||
|
||||
return last12Months; |
||||
} |
||||
|
||||
/** |
||||
* 获取最近12个月,经常用于统计图表的X轴 |
||||
*/ |
||||
public static List<String> getMonths(String startTimeStr, String endTimeStr) { |
||||
List<String> months = new ArrayList<>(); |
||||
|
||||
Calendar starCal = Calendar.getInstance(); |
||||
starCal.setTime(DateUtil.parse(startTimeStr, DateUtil.PATTERN_DATETIME)); |
||||
|
||||
// 要先 - 1,才能把初始月算进去
|
||||
starCal.set(Calendar.MONTH, starCal.get(Calendar.MONTH) - 1); |
||||
|
||||
|
||||
for (int i = 0; i < 12; i++) { |
||||
// 逐次往前推1个月
|
||||
starCal.set(Calendar.MONTH, starCal.get(Calendar.MONTH) + 1); |
||||
months.add(DateUtil.format(starCal.getTime(), "yyyyMM")); |
||||
} |
||||
return months; |
||||
} |
||||
|
||||
/** |
||||
* 获取几月前的时间 |
||||
* |
||||
* @param num |
||||
* @return |
||||
*/ |
||||
public static Date getMonthTime(Integer num) { |
||||
Calendar c = Calendar.getInstance(); |
||||
c.setTime(new Date()); |
||||
c.add(Calendar.MONTH, -num); |
||||
return c.getTime(); |
||||
} |
||||
|
||||
/** |
||||
* 获取几月前的时间 |
||||
* |
||||
* @param num |
||||
* @return |
||||
*/ |
||||
public static String getMonthTimeString(int num) { |
||||
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
||||
Calendar c = Calendar.getInstance(); |
||||
c.setTime(new Date()); |
||||
c.add(Calendar.MONTH, -num); |
||||
return format.format(c.getTime()); |
||||
} |
||||
|
||||
/** |
||||
* 获取两个日期之间相差的月份 |
||||
* |
||||
* @param startDate |
||||
* @param endDate |
||||
* @return |
||||
* @throws ParseException |
||||
*/ |
||||
public static List getMonth(String startDate, String endDate) { |
||||
List list = new ArrayList(); |
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); |
||||
Calendar c1 = Calendar.getInstance(); |
||||
Calendar c2 = Calendar.getInstance(); |
||||
try { |
||||
c1.setTime(sdf.parse(startDate)); |
||||
c2.setTime(sdf.parse(endDate)); |
||||
} catch (ParseException e) { |
||||
e.printStackTrace(); |
||||
} |
||||
int year = c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR); |
||||
int month = c2.get(Calendar.MONTH) + year * 12 - c1.get(Calendar.MONTH); |
||||
for (int i = 0; i <= month; i++) { |
||||
try { |
||||
c1.setTime(sdf.parse(startDate)); |
||||
} catch (ParseException e) { |
||||
e.printStackTrace(); |
||||
} |
||||
c1.add(Calendar.MONTH, i); |
||||
list.add(sdf.format(c1.getTime())); |
||||
} |
||||
return list; |
||||
} |
||||
|
||||
/** |
||||
* 获取两个日期之间的所有日期 |
||||
* |
||||
* @param startTime 开始日期 |
||||
* @param endTime 结束日期 |
||||
* @return |
||||
*/ |
||||
public static List<String> getDays(String startTime, String endTime) { |
||||
// 返回的日期集合
|
||||
List<String> days = new ArrayList<String>(); |
||||
|
||||
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); |
||||
try { |
||||
Date start = dateFormat.parse(startTime); |
||||
Date end = dateFormat.parse(endTime); |
||||
|
||||
Calendar tempStart = Calendar.getInstance(); |
||||
tempStart.setTime(start); |
||||
|
||||
Calendar tempEnd = Calendar.getInstance(); |
||||
tempEnd.setTime(end); |
||||
// 日期加1(包含结束)
|
||||
tempEnd.add(Calendar.DATE, 1); |
||||
while (tempStart.before(tempEnd)) { |
||||
days.add(dateFormat.format(tempStart.getTime())); |
||||
tempStart.add(Calendar.DAY_OF_YEAR, 1); |
||||
} |
||||
|
||||
} catch (ParseException e) { |
||||
e.printStackTrace(); |
||||
} |
||||
|
||||
return days; |
||||
} |
||||
|
||||
/** |
||||
* 计算两个日期之间相差的天数 |
||||
* |
||||
* @param sdate 较小的时间 |
||||
* @param edate 较大的时间 |
||||
* @return 相差天数 |
||||
* @throws ParseException |
||||
*/ |
||||
public static int daysBetween(Date sdate, Date edate) { |
||||
sdate = DateUtil.parse(DateUtil.format(sdate, DateUtil.PATTERN_DATE), DateUtil.PATTERN_DATE); |
||||
edate = DateUtil.parse(DateUtil.format(edate, DateUtil.PATTERN_DATE), DateUtil.PATTERN_DATE); |
||||
Calendar cal = Calendar.getInstance(); |
||||
cal.setTime(sdate); |
||||
long time1 = cal.getTimeInMillis(); |
||||
cal.setTime(edate); |
||||
long time2 = cal.getTimeInMillis(); |
||||
long between_days = (time2 - time1) / (1000 * 3600 * 24); |
||||
|
||||
return Integer.parseInt(String.valueOf(between_days)) + 1; |
||||
} |
||||
|
||||
/** |
||||
* 获取月份的天数 |
||||
* |
||||
* @param yearMon 格式yyyyMM |
||||
* @return |
||||
*/ |
||||
public static int getMonthDays(String yearMon) { |
||||
if (Func.isEmpty(yearMon) || yearMon.length() != 6) { |
||||
return 0; |
||||
} |
||||
|
||||
Calendar cal = Calendar.getInstance(); |
||||
Date date = DateUtil.parse(yearMon, "yyyyMM"); |
||||
cal.setTime(date); |
||||
|
||||
return cal.getActualMaximum(Calendar.DAY_OF_MONTH); |
||||
} |
||||
|
||||
/** |
||||
* 获取两个日期之间相差的月份 |
||||
* |
||||
* @param startDate 开始日期 |
||||
* @param endDate 结束日期 |
||||
* @return |
||||
* @throws ParseException |
||||
*/ |
||||
public static List<String> getYearList(String startDate, String endDate) { |
||||
List list = new ArrayList(); |
||||
int startYear = Integer.parseInt(startDate.substring(0, 4)); |
||||
int endYear = Integer.parseInt(endDate.substring(0, 4)); |
||||
|
||||
for (; startYear <= endYear; startYear++) { |
||||
list.add(startYear + ""); |
||||
} |
||||
|
||||
return list; |
||||
} |
||||
|
||||
/** |
||||
* 获取两个日期之间相差的月份 |
||||
* |
||||
* @param startDate 开始日期 |
||||
* @param endDate 结束日期 |
||||
* @param formatStr 返回值的格式字符串 |
||||
* @return |
||||
* @throws ParseException |
||||
*/ |
||||
public static List<String> getMonthList(String startDate, String endDate, String formatStr) { |
||||
List list = new ArrayList(); |
||||
SimpleDateFormat sdf = new SimpleDateFormat(formatStr); |
||||
Calendar c1 = Calendar.getInstance(); |
||||
Calendar c2 = Calendar.getInstance(); |
||||
c1.setTime(DateUtil.parse(startDate, DateUtil.PATTERN_DATETIME)); |
||||
c2.setTime(DateUtil.parse(endDate, DateUtil.PATTERN_DATETIME)); |
||||
|
||||
int year = c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR); |
||||
int month = c2.get(Calendar.MONTH) + year * 12 - c1.get(Calendar.MONTH); |
||||
|
||||
for (int i = 0; i <= month; i++) { |
||||
c1.setTime(DateUtil.parse(startDate, DateUtil.PATTERN_DATETIME)); |
||||
c1.add(Calendar.MONTH, i); |
||||
list.add(sdf.format(c1.getTime())); |
||||
} |
||||
return list; |
||||
} |
||||
|
||||
/** |
||||
* 获取两个日期之间的所有日期 |
||||
* |
||||
* @param startTime 开始日期 |
||||
* @param endTime 结束日期 |
||||
* @param formatStr 返回值的格式字符串 |
||||
* @return |
||||
*/ |
||||
public static List<String> getDayList(String startTime, String endTime, String formatStr) { |
||||
// 返回的日期集合
|
||||
List<String> days = new ArrayList<String>(); |
||||
|
||||
DateFormat dateFormat = new SimpleDateFormat(formatStr); |
||||
Date start = DateUtil.parse(startTime, DateUtil.PATTERN_DATETIME); |
||||
Date end = DateUtil.parse(endTime, DateUtil.PATTERN_DATETIME); |
||||
|
||||
Calendar tempStart = Calendar.getInstance(); |
||||
tempStart.setTime(start); |
||||
|
||||
Calendar tempEnd = Calendar.getInstance(); |
||||
tempEnd.setTime(end); |
||||
// 日期加1(包含结束)
|
||||
// tempEnd.add(Calendar.DATE, 1);
|
||||
while (tempStart.before(tempEnd)) { |
||||
days.add(dateFormat.format(tempStart.getTime())); |
||||
tempStart.add(Calendar.DAY_OF_YEAR, 1); |
||||
} |
||||
return days; |
||||
} |
||||
} |
||||
Loading…
Reference in new issue