java 统计有效时间段的 每一年 每一月或者每一日 、计算时间差

  1. 当为年 或者月 或者日 时 统计有效时间段的 每一年 每一月或者每一日
  2. 计算时间差 天数

第一个 当为年 或者月 或者日 时 统计有效时间段的 每一年 每一月或者每一日

注 : DateUtils.getDate(strTime, “yyyy”); 此方法为自定义的DateUtils类; 返回Date对象。

 List<String> dates = new ArrayList<String>();//有效时间list
        Date time = null;
        String strTime = startTime;
 if ("year".equals(radio)) {
            time = DateUtils.getDate(strTime, "yyyy");
            int i = 0;
            while (!strTime.equals(end)) {
                Calendar cl = Calendar.getInstance();
                cl.setTime(time);
                cl.add(Calendar.YEAR, i);
                Date d = cl.getTime();
                strTime = DateUtils.getYearMonthStr(d, DateUtils.DB_STORE_DATE).substring(0, 4);
                time = d;
                dates.add(strTime);
                strTime = strTime.replaceAll("-", "");
                i = 1;
            }

        } else if ("month".equals(radio)) {
            time = DateUtils.getDate(strTime, "yyyyMM");
            int i = 0;
            while (!strTime.equals(end)) {
                Calendar cl = Calendar.getInstance();
                cl.setTime(time);
                cl.add(Calendar.MONTH, i);
                Date d = cl.getTime();
                strTime = DateUtils.changeDateToStr(d, DateUtils.LINK_DISPLAY_DATE).substring(0, 7);
                time = d;
                dates.add(strTime);
                strTime = strTime.replaceAll("-", "");
                i = 1;
            }

        } else if ("day".equals(radio)) {
            time = DateUtils.getDate(strTime, "yyyyMMdd");
            int i = 0;
            while (!strTime.equals(end)) {
                Calendar cl = Calendar.getInstance();
                cl.setTime(time);
                cl.add(Calendar.DATE, i);
                Date d = cl.getTime();
                strTime = DateUtils.changeDateToStr(d, DateUtils.LINK_DISPLAY_DATE);
                time = d;
                dates.add(strTime);
                strTime = strTime.replaceAll("-", "");
                i = 1;
            }

        }

第二个 计算时间差天数

//startend 为 String类型  如20170918
 Date time1 = DateUtils.getDate(start, "yyyyMMdd");
        Date time2 = DateUtils.getDate(end, "yyyyMMdd");
        Calendar calst = Calendar.getInstance();;
        Calendar caled = Calendar.getInstance();
        calst.setTime( time1);
        caled.setTime(time2);
        //设置时间为0时
        calst.set(Calendar.HOUR_OF_DAY, 0);
        calst.set(Calendar.MINUTE, 0);
        calst.set(Calendar.SECOND, 0);
        caled.set(Calendar.HOUR_OF_DAY, 0);
        caled.set(Calendar.MINUTE, 0);
        caled.set(Calendar.SECOND, 0);
        //得到两个日期相差的天数
        int days = ((int)(caled.getTime().getTime()/1000)-(int)(calst.getTime().getTime()/1000))/3600/24;

猜你喜欢

转载自blog.csdn.net/rd_moon/article/details/78040359
今日推荐