/**
* 通过 timeType获取时间节点
*
* @param timeType 1 今日 2 本周 3 本月 4 最近24小时 5 最近7天 6 最近30天 7 最近90天
* @param detailType 1 秒 2 分 3 小时 4 天
* @return stepType 1 全部 2 首尾
*/
private List<String> getHourListByType(int timeType, int detailType, int stepType) {
DateTime now = new DateTime();
if (timeType == 0) {
return getHourListByType(DateUtil.beginOfDay(now).offset(DateField.YEAR, -5), DateUtil.endOfDay(now), detailType, stepType);
} else if (timeType == 1) {
return getHourListByType(DateUtil.beginOfDay(now), DateUtil.endOfDay(now), detailType, stepType);
} else if (timeType == 2) {
return getHourListByType(DateUtil.beginOfWeek(now), DateUtil.endOfDay(now), detailType, stepType);
} else if (timeType == 3) {
return getHourListByType(DateUtil.beginOfMonth(now), DateUtil.endOfDay(now), detailType, stepType);
} else if (timeType == 4) {
return getHourListByType(DateUtil.parse(DateUtil.format(now, "yyyy-MM-dd HH:00:00")).offset(DateField.HOUR
, -23), DateUtil.parse(DateUtil.format(now, "yyyy-MM-dd HH:59:59")), detailType, stepType);
} else if (timeType == 5) {
return getHourListByType(DateUtil.beginOfDay(now).offset(DateField.DAY_OF_YEAR, -6),
DateUtil.endOfDay(now), detailType, stepType);
} else if (timeType == 6) {
return getHourListByType(DateUtil.beginOfDay(now).offset(DateField.DAY_OF_YEAR, -29),
DateUtil.endOfDay(now), detailType, stepType);
} else if (timeType == 7) {
return getHourListByType(DateUtil.beginOfDay(now).offset(DateField.DAY_OF_YEAR, -89),
DateUtil.endOfDay(now), detailType, stepType);
} else {
return Collections.singletonList("-1");
}
}
private List<String> getHourListByType(DateTime startTime, DateTime endTime, int detailType, int stepType) {
List<String> resultList = new ArrayList<>();
DateField step;
String format;
if (detailType == 1) {
step = DateField.SECOND;
format = "yyyy-MM-dd HH:mm:ss";
} else if (detailType == 2) {
step = DateField.MINUTE;
format = "yyyy-MM-dd HH:mm";
} else if (detailType == 3) {
step = DateField.HOUR;
format = "yyyy-MM-dd HH";
} else if (detailType == 4) {
step = DateField.DAY_OF_YEAR;
format = "yyyy-MM-dd";
} else {
step = DateField.HOUR;
format = "yyyy-MM-dd HH";
}
if (stepType == 1) {
for (; startTime.isBefore(endTime); startTime.offset(step, 1)) {
resultList.add(DateUtil.format(startTime, format));
}
} else if (stepType == 2) {
resultList.add(DateUtil.format(startTime, format));
resultList.add(DateUtil.format(endTime, format));
}
return resultList;
}
通过前台传递的时间timeType 1 今日 2 本周 3 本月 4 最近24小时 5 最近7天 6 最近30天 7 最近90天 后台做处理
最新推荐文章于 2024-07-06 21:51:59 发布