/** * 截取小時 時間段,一半個小時為單位 * * @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; }