//补全日期 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; }