//把传进来的Interval按小时分成多份
public List cutTimeToHours(Interval interval){
List intervalList=ListUtils.newArrayList();
Calendar cal = Calendar.getInstance();
Calendar calEnd = Calendar.getInstance();
cal.setTime(interval.getStartTime());
calEnd.setTime(interval.getEndTime());
int year = cal.get(Calendar.YEAR);//获取年份
int month=cal.get(Calendar.MONTH);//获取月份
int day=cal.get(Calendar.DATE);//获取日
int hour=cal.get(Calendar.HOUR_OF_DAY);//小时
int minute=cal.get(Calendar.MINUTE);//分
int second=cal.get(Calendar.SECOND);//秒
int yearEnd = calEnd.get(Calendar.YEAR);//获取年份
int monthEnd=calEnd.get(Calendar.MONTH);//获取月份
int dayEnd=calEnd.get(Calendar.DATE);//获取日
int hourEnd=calEnd.get(Calendar.HOUR_OF_DAY);//小时
int minuteEnd=calEnd.get(Calendar.MINUTE);//分
int secondEnd=calEnd.get(Calendar.SECOND);//秒
Interval lastInterval=null;
if(minute>0||second>0) {
Calendar startCal = Calendar.getInstance();
Calendar endCal = Calendar.getInstance();
startCal.set(year, month, day, hour, 0, 0);
endCal.set(year, month, day, hour, 0, 0);
endCal.add(Calendar.HOUR,1);
Date startDate = startCal.getTime();
Date endDate = endCal.getTime();
//intervalList.add(new Interval(startDate, endDate));
cal.set(year, month, day, hour, 0, 0);
}
if(minuteEnd>0||secondEnd>0){
Calendar startCal = Calendar.getInstance();
Calendar endCal = Calendar.getInstance();
startCal.set(yearEnd, monthEnd, dayEnd, hourEnd, 0, 0);
endCal.set(yearEnd, monthEnd, dayEnd, hourEnd, 0, 0);
Date startDate = startCal.getTime();
endCal.add(Calendar.HOUR,1);
Date endDate=endCal.getTime();
lastInterval=new Interval(startDate, endDate);
//intervalList.add(new Interval(startDate, endDate));
calEnd.set(yearEnd, monthEnd, dayEnd, hourEnd, 0, 0);
calEnd.add(Calendar.HOUR,1);
}
while(cal.getTime().getTime()<calEnd.getTime().getTime()){
Date dateS=cal.getTime();
cal.add(Calendar.HOUR,1);
Date dateE=cal.getTime();
intervalList.add(new Interval(dateS,dateE));
}
if(lastInterval!=null) {
//intervalList.add(lastInterval);
}
return intervalList;
}
//把传进来的Interval按照班次分成多份
public List cutTimeToFlights(Interval interval){
List intervalList=ListUtils.newArrayList();
Calendar cal = Calendar.getInstance();
Calendar calEnd = Calendar.getInstance();
cal.setTime(interval.getStartTime());
calEnd.setTime(interval.getEndTime());
int year = cal.get(Calendar.YEAR);//获取年份
int month=cal.get(Calendar.MONTH);//获取月份
int day=cal.get(Calendar.DATE);//获取日
int hour=cal.get(Calendar.HOUR_OF_DAY);//小时
int yearEnd = calEnd.get(Calendar.YEAR);//获取年份
int monthEnd=calEnd.get(Calendar.MONTH);//获取月份
int dayEnd=calEnd.get(Calendar.DATE);//获取日
int hourEnd=calEnd.get(Calendar.HOUR_OF_DAY);//小时
Calendar startCal = Calendar.getInstance();
Calendar endCal = Calendar.getInstance();
if(hour>=8&&hour<20) {
startCal.set(year, month, day, 8, 0, 0);
}else if(hour>=20){
startCal.set(year, month, day, 20, 0, 0);
}else{
startCal.set(year, month, day, 20, 0, 0);
startCal.add(Calendar.DAY_OF_MONTH,-1);
}
if(hourEnd>=8&&hourEnd<20){
endCal.set(yearEnd, monthEnd, dayEnd, 20, 0, 0);
}else if(hourEnd<8){
endCal.set(yearEnd, monthEnd, dayEnd, 8, 0, 0);
}else{
endCal.set(yearEnd, monthEnd, dayEnd, 8, 0, 0);
endCal.add(Calendar.DAY_OF_MONTH,1);
}
while(startCal.getTime().getTime()<endCal.getTime().getTime()){
Date dateS=startCal.getTime();
startCal.add(Calendar.HOUR_OF_DAY,12);
Date dateE=startCal.getTime();
intervalList.add(new Interval(dateS,dateE));
System.out.println("dateS==>"+dateS.toString()+" dateE"+dateE.toString());
}
return intervalList;
}