public static List<Map<String,Object>> getQuarterList(String startDate, String endDate) throws Exception {
List<Map<String,Object>> quarterList = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date start_date = sdf.parse(startDate);
Date end_date = sdf.parse(endDate);
Calendar dd = Calendar.getInstance();
Calendar DD = Calendar.getInstance();
dd.setTime(start_date);
DD.setTime(start_date);
Map<String,Object> map = new HashMap<>();
String[] numStr= sdf.format(dd.getTime()).split("-",0);
int quarter = getQuarter(Integer.parseInt(numStr[1]));
while (!dd.getTime().after(end_date)) {
if (quarterList.size() == 0 && map.size() == 0) {
map.put("start",sdf.format(dd.getTime()));
}
DD.add(Calendar.DATE,1);
numStr= sdf.format(DD.getTime()).split("-",0);
int q = getQuarter(Integer.parseInt(numStr[1]));
if (q != quarter) {
map.put("end",sdf.format(dd.getTime()));
quarterList.add(map);
quarter = q;
map = new HashMap<>();
}
if (map.size() == 0) {
map.put("start",sdf.format(DD.getTime()));
}
if (DD.getTime().after(end_date)) {
map.put("end",sdf.format(dd.getTime()));
quarterList.add(map);
map = new HashMap<>();
}
dd.add(Calendar.DATE,1);
}
return quarterList;
}
/**
* 根据月获得季度
* @param month 月
* @return 季度
*/
public static int getQuarter(int month) {
if(month == 1 || month == 2 || month == 3){
return 1;
}else if(month == 4 || month == 5 || month == 6){
return 2;
}else if(month == 7 || month == 8 || month == 9){
return 3;
}else{
return 4;
}
}