java 截取小时 时间段,一半个小时为单位

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

 

posted @ 2020-04-01 10:11  zhangheliang  阅读(2000)  评论(0编辑  收藏  举报