Java、 补全日期

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

  

 

posted @ 2018-12-27 11:55  久违的黎明  阅读(3423)  评论(0编辑  收藏  举报