/**
* 获取开始和结束时间
* @param model
* @return
*/
public static StatisticsDTO getTimePeriod(StatisticsDTO model) {
Long day = 0L;
//判断前端什么都没传值,默认月
if (StringUtil.isBlank(model.getStartTime()) || StringUtil.isBlank(model.getEndTime())) {
Calendar cal = Calendar.getInstance();
//当前月1号
cal.set(Calendar.DAY_OF_MONTH, 1);
//减一天:上个月最后一天
cal.add(Calendar.DATE, -1);
model.setDayCount(Long.valueOf(cal.getActualMaximum(Calendar.DAY_OF_MONTH)));
model.setEndDate(CalendarUtil.endOfDay(cal).getTime());
//改月1:上个月第一天
cal.set(Calendar.DAY_OF_MONTH, 1);
model.setStartDate(CalendarUtil.beginOfDay(cal).getTime());
day = Long.valueOf(cal.getActualMaximum(Calendar.DAY_OF_MONTH));
} else {
model.setStartTime(model.getStartTime() + " 00:00:00");
model.setEndTime(model.getEndTime() + " 23:59:59");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
model.setStartDate(sdf.parse(model.getStartTime()));
model.setEndDate(sdf.parse(model.getEndTime()));
} catch (ParseException e) {
throw new RuntimeException(e);
}
//时间段
Instant start = model.getStartDate().toInstant();
Instant end = model.getEndDate().toInstant();
day = ChronoUnit.DAYS.between(start, end);
}
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
// SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM");
if (day > BasicsConstant.MONTH_MAX_DAY){
//月计算
model.setTypeTime(2);
model.setStartTime(sdf1.format(model.getStartDate()));
model.setEndTime(sdf1.format(model.getEndDate()));
} else {
//日计算
model.setTypeTime(0);
model.setStartTime(sdf1.format(model.getStartDate()));
model.setEndTime(sdf1.format(model.getEndDate()));
}
return model;
}
对应实体解释
/**
* 开始时间
*/
private String startTime;
/**
* 结束时间
*/
private String endTime;
/**
* 开始时间
*/
private Date startDate;
/**
* 结束时间
*/
private Date endDate;
/**
* 同比开始时间
*/
private Date startTimeYoy;
/**
* 同比结束时间
*/
private Date endTimeYoy;
/**
* 环比开始时间
*/
private Date startTimeRing;
/**
* 环比结束时间
*/
private Date endTimeRing;
/**
* 实际类型:1年,2月,3周,4日,0选时间段
*/
private Integer typeTime;
/**
* 图例
*/
private String code;
/**
* 图例
*/
private List<String> codeList;
/**
* 高发点分组
*/
private String groupid;
/**
* 之间的天数
*/
private Long dayCount;