//日期加上天数,后的日期
public static String addDate(String date,int dayl) throws ParseException {
long day = (int)dayl;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date currdate = format.parse(date);
long time = currdate.getTime(); // 得到指定日期的毫秒数
day = day*24*60*60*1000; // 要加上的天数转换成毫秒数
time+=day; // 相加得到新的毫秒数
Date date1 = new Date(time);// 将毫秒数转换成日期
String format1 = format.format(date1);
return format1;
}
//两个时间段间隔的天数
public Long getTwoDateNum(String startDate,String endDate) throws Exception{
DateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
Date star = dft.parse(startDate);//开始时间
if(endDate == null || endDate.equals("")){//若结束日期为空,获取当前时间
Date date = new Date();
endDate = dft.format(date);
}
Date endDay=dft.parse(endDate);//结束时间
Long starTime=star.getTime();
Long endTime=endDay.getTime();
Long num=endTime-starTime;//时间戳相差的毫秒数
return num/24/60/60/1000;
}
//通过开始时间、结束时间、数组长度,
public List<String> getDateList(String startDate,String endDate,int i) throws Exception{
List<String> lista = new ArrayList<>();
lista.add(startDate);
Long twoDateNum = getTwoDateNum(startDate, endDate);//开始时间、结束时间之间的天数
int avgNum = (int)(twoDateNum/i);
for(int j = 0; j < i-2; j++){
startDate = addDate(startDate, Math.round(avgNum));
lista.add(startDate);
}
lista.add(endDate);
return lista;
}