/** * 截取小时 时间段,一半个小时为单位 * * @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; }