- 当为年 或者月 或者日 时 统计有效时间段的 每一年 每一月或者每一日
- 计算时间差 天数
第一个 当为年 或者月 或者日 时 统计有效时间段的 每一年 每一月或者每一日
注 : 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;
}
}
第二个 计算时间差天数
//start 和 end 为 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;