获取开始及结束日期间隔月份或年份列表
/**
* 获取开始及结束日期间隔月份列表
* start格式 "2015-01-01"
* end格式 "2016-01-01"
* @param start
* @param end
* @return
*/
public static List<String> getMonths(String start, String end) {
List<String> dateList = new ArrayList<String>();
if (StringUtils.isNotBlank(start) && StringUtils.isNotBlank(end)) {
Date dBegin = ToolDateTime.parse(start, ToolDateTime.pattern_ymd);
Date dEnd = ToolDateTime.parse(end, ToolDateTime.pattern_ymd);
Calendar calBegin = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calBegin.setTime(dBegin);
int yearMonth1 = (calBegin.get(Calendar.YEAR)) * 100 + calBegin.get(Calendar.MONTH);
Calendar calEnd = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calEnd.setTime(dEnd);
int yearMonth2 = (calEnd.get(Calendar.YEAR)) * 100 + calEnd.get(Calendar.MONTH);
// 测试此日期是否在指定日期之后
while (yearMonth2 >= yearMonth1) {
dateList.add(ToolDateTime.format(calBegin.getTime(), ToolDateTime.pattern_ym));
calBegin.add(Calendar.MONTH, 1);
yearMonth1 = (calBegin.get(Calendar.YEAR)) * 100 + calBegin.get(Calendar.MONTH);
}
}
return dateList;
}
/**
* 获取开始及结束日期间隔年份列表
* start格式 "2015-01-01"
* end格式 "2016-01-01"
* @param start
* @param end
* @return
*/
public static List<String> getYears(String start, String end) {
List<String> dateList = new ArrayList<String>();
if (StringUtils.isNotBlank(start) && StringUtils.isNotBlank(end)) {
Date dBegin = ToolDateTime.parse(start, ToolDateTime.pattern_ymd);
Date dEnd = ToolDateTime.parse(end, ToolDateTime.pattern_ymd);
Calendar calBegin = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calBegin.setTime(dBegin);
int year1 = calBegin.get(Calendar.YEAR);
Calendar calEnd = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calEnd.setTime(dEnd);
int year2 = calEnd.get(Calendar.YEAR);
// 测试此日期是否在指定日期之后
while (year2 >= year1) {
dateList.add(ToolDateTime.format(calBegin.getTime(), "yyyy"));
calBegin.add(Calendar.YEAR, 1);
year1 = calBegin.get(Calendar.YEAR);
}
}
return dateList;
}
注:
工具类ToolDateTime.class没粘,把下面的改成自己的方法即可
public static final String pattern_ym = "yyyy-MM"; // pattern_ym
public static final String pattern_ymd = "yyyy-MM-dd"; // pattern_ymd
public static String format(Date date, String pattern) {
DateFormat format = new SimpleDateFormat(pattern);
return format.format(date);
}
public static Date parse(String date, String pattern) {
SimpleDateFormat format = new SimpleDateFormat(pattern);
try {
return format.parse(date);
} catch (ParseException e) {
log.error("ToolDateTime.parse异常:date值" + date + ",pattern值" + pattern);
return null;
}
}