传来时间范围,返回年月日集合
记录一下开发中碰到的需求
比如输入一个时间范围: 2020-01-01~2021-12-31
/**
* 传来时间范围,返回年月日
* @param beginTime 开始时间
* @param endTime 结束时间
* @return
* @throws Exception
*/
private List<String> timeProcessing(String beginTime,String endTime)throws Exception{
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
List<String> timeList = new ArrayList<>();
//传入日期
Calendar begin = Calendar.getInstance();//开始时间
begin.setTime(sf.parse(beginTime));//设置时间
int beginyear = begin.get(Calendar.YEAR);//获取年份
int beginmonth=begin.get(Calendar.MONTH)+1;//获取月份
int beginday = begin.get(Calendar.DATE);//获取天
Calendar end = Calendar.getInstance();//结束时间
end.setTime(sf.parse(endTime));//设置时间
int endyear = end.get(Calendar.YEAR);//获取年份
int endmonth=end.get(Calendar.MONTH)+1;//获取月份
int endday = end.get(Calendar.DATE);//获取天
int differenceMonth = endyear * 12 + endmonth - (beginyear * 12 + beginmonth);
//月份累加判断是否大于结束时间
while(differenceMonth >0 ){
String month = "";
if(beginmonth > 12){
beginyear +=1;
beginmonth = 1;
}
if(beginmonth < 10){
month = "0"+beginmonth;
}else{
month = beginmonth+"";
}
String time = beginyear+"-"+month+"-0"+beginday;
begin.add(Calendar.MONTH,1);
beginmonth++;
differenceMonth --;
timeList.add(time);
}
String m = "";
if(endmonth < 10){
m = "0"+endmonth;
}else{
m = endmonth+"";
}
String entTime = endyear+"-"+m+"-"+endday;
timeList.add(entTime);
return timeList;
}