//補全日期 List<String> dateList=findDatesYear(startTime,endTime); ArrayList<Object[]> list=logoiddao.selectDateDayS(startTime, endTime, queryId); List<Map<String,Object>> mapList=new ArrayList<Map<String,Object>>(); //key :日期 value:數值 for(Object[] li:list) { Map<String,Object> map=new HashMap<String,Object>(); map.put("date",li[0].toString()); map.put("count", li[1]); mapList.add(map); } boolean flag=false; for (int i=0;i<dateList.size();i++) { flag=false; for (Map<String, Object> hs : mapList) { if (dateList.get(i).equals(hs.get("date"))) { flag=true; break; } } if(flag!=true){ final String date=dateList.get(i); mapList.add(i,new HashMap<String,Object>(){{ put("count", 0); put("date", date); }}); } } return mapList;
//JAVA獲取某段時間內的全部日期 public static List<String> findDates(String dStart, String dEnd) { SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); List<String> dateList=null; try { Calendar cStart = Calendar.getInstance(); cStart.setTime(sdf.parse(dStart)); dateList = new ArrayList<String>(); //別忘了,把起始日期加上 dateList.add(dStart); // 此日期是否在指定日期以後 while (sdf.parse(dEnd).after(cStart.getTime())) { // 根據日曆的規則,爲給定的日曆字段添加或減去指定的時間量 cStart.add(Calendar.DAY_OF_MONTH, 1); dateList.add(sdf.format(cStart.getTime())); } }catch(Exception e) { e.printStackTrace(); } return dateList; } @Test public void test() { } //JAVA獲取某段時間內的全部日期 public static List<String> findDatesYear(String dStart, String dEnd) { SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM"); //先將日期換成月份制 List<String> dateList=null; try { Date date=sdf2.parse(sdf2.format(sdf.parse(dStart)));//2018-01 date Date datelast=sdf2.parse(sdf2.format(sdf.parse(dEnd))); String dateSpring=sdf2.format(sdf.parse(dStart)); //2018-01 Calendar car = Calendar.getInstance(); car.setTime(date); dateList = new ArrayList<String>(); //別忘了,把起始日期加上 dateList.add(dateSpring); //此日期是否在指定日期以後 while (datelast.after(car.getTime())) { //根據日曆的規則,爲給定的日曆字段添加或減去指定的時間量 car.add(Calendar.MONTH ,1); dateList.add(sdf2.format(car.getTime())); } }catch(Exception e) { e.printStackTrace(); } return dateList; }