1.不包含起止日期:
public static List<String> getMonthBetweenDateStr(String minDate, String maxDate) throws ParseException{
List<String> listDate = new ArrayList<String>();
Calendar startCalendar = Calendar.getInstance();
Calendar endCalendar = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date startDate = df.parse(minDate);
startCalendar.setTime(startDate);
Date endDate = df.parse(maxDate);
endCalendar.setTime(endDate);
while(true){
startCalendar.add(Calendar.DAY_OF_MONTH, 1);
if(startCalendar.getTimeInMillis() < endCalendar.getTimeInMillis()){
listDate.add(df.format(startCalendar.getTime()));
}else{
break;
}
}
return listDate;
}
2.包含起止日期:
public static List<Date> getMonthBetweenDate(Date beginDate, Date endDate) {
if(beginDate.getTime() == endDate.getTime()){
return null;
}
List lDate = new ArrayList();
lDate.add(beginDate);//把开始时间加入集合
Calendar cal = Calendar.getInstance();
//使用给定的 Date 设置此 Calendar 的时间
cal.setTime(beginDate);
boolean bContinue = true;
while (bContinue) {
//根据日历的规则,为给定的日历字段添加或减去指定的时间量
cal.add(Calendar.DAY_OF_MONTH, 1);
// 测试此日期是否在指定日期之后
if (endDate.after(cal.getTime())) {
lDate.add(cal.getTime());
} else {
break;
}
}
lDate.add(endDate);//把结束时间加入集合
return lDate;
}