自定义起始日查询包含的所有日子(跨月)
date = getDaysBetweenTwoDays(first, last);
public static List<String> getDaysBetweenTwoDays(String startDay,String endDay) throws Exception {
List<String> list = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//格式化为年月
Calendar min = Calendar.getInstance();
Calendar max = Calendar.getInstance();
min.setTime(sdf.parse(startDay));
min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), min.get(Calendar.DATE),0,0,0);
max.setTime(sdf.parse(endDay));
max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), max.get(Calendar.DATE),23,59,59);
Calendar curr = min;
while (curr.before(max)) {
list.add(sdf.format(curr.getTime()));
curr.add(Calendar.DATE, 1);
}
return list;
}
自定义起始月查询包含的所有月份(跨年)
date = getMonthBetween(first, last);
public List<String> getMonthBetween(String minDate, String maxDate) throws Exception {
ArrayList<String> result = new ArrayList<String>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");//格式化为年月
Calendar min = Calendar.getInstance();
Calendar max = Calendar.getInstance();
min.setTime(sdf.parse(minDate));
min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1);
max.setTime(sdf.parse(maxDate));
max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2);
Calendar curr = min;
while (curr.before(max)) {
result.add(sdf.format(curr.getTime()));
curr.add(Calendar.MONTH, 1);
}
min = null;max = null;curr = null;
return result;
}