/**
* 截取小时 时间段,一半个小时为单位
*
* @param startTime 06:00 格式强制 **:**
* @param endTime 18:00 格式强制 **:**
* @return
*/
public static List<String> getHourParts(String startTime ,String endTime){
List<String> list = new ArrayList<>();
int startIndex = 0;
int endIndex = 0;
//30分钟一次1天有48次
int hoursNumber = 48;
//开始时间为0秒,第一次循环为900秒
int startValueZero = 0;
//开始时间为-900秒,第一次循环为0秒
int startValueNineHundred = -1800;
//初始时间都为00:00
String initialTimeFront = "00:00";
//循环时间为00:00~23:30
for (int i = 0; i < hoursNumber; i++) {
//每次循环之前加15分钟
startValueZero = startValueZero + 1800;
//每次循环之前加15分钟
startValueNineHundred = startValueNineHundred + 1800;
//判断初始秒树是否为0
if(startValueZero != 0){
//换算成小时
int conversionHours = (Integer.valueOf(startValueZero) / 3600);
//换算成分钟
int conversionMinute = (Integer.valueOf(startValueZero) % 3600 / 60);
//把生成的时间转化成字符串
String hourst = String.valueOf(conversionHours);
String minute = String.valueOf(conversionMinute);
//如果小时的长度等于1个,在其前面加个0
if(hourst.length() == 1){
hourst = "0"+hourst;
}
//如果小时的到达24点让其初始化为00
if(hourst.equals("24")){
hourst = "00";
}
//如果分钟的长度等于1个,在其前面加个0
if(minute.length() == 1){
minute = "0"+minute;
}
}
//循环时间为00:30~00:00
if(startValueNineHundred != 0){
//换算成小时
int conversionHourst = (Integer.valueOf(startValueNineHundred) / 3600);
//换算成分钟
int conversionMinute = (Integer.valueOf(startValueNineHundred) % 3600 / 60);
//把生成的时间转化成字符串
String hourst = String.valueOf(conversionHourst);
String minute = String.valueOf(conversionMinute);
//如果小时的长度等于1个,在其前面加个0
if(hourst.length() == 1){
hourst = "0"+hourst;
}
//如果小时的到达24点让其初始化为00
if(hourst.equals("24")){
hourst = "00";
}
//如果分钟的长度等于1个,在其前面加个0
if(minute.length() == 1){
minute = "0" + minute;
}
//拼接小时和分钟
initialTimeFront = hourst + ":" + minute;
if(initialTimeFront.equals(startTime)){
startIndex = i;
}
if(initialTimeFront.equals(endTime)){
endIndex = i + 1;
}
}
//将所有字段放入list中
list.add(initialTimeFront);
}
//闭合
list.add(initialTimeFront);
//截取
List<String> subList = list.subList(startIndex, endIndex);
return subList;
}