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