如何在我的输入时间中增加30分钟并将其循环播放到12小时格式(AM / PM)中的输入结束时间

时间:2018-08-11 01:32:28

标签: java

这是我的CODE,但是直到我的结束输入时间继续循环时,它才停止循环,我只想循环播放直到12HOUR FORMAT中的结束输入时间为止。我该怎么办?

package javaapplication;

import java.time.LocalTime;
import java.text.ParseException;

public class JavaApplication {

    public static void main(String[] args) throws ParseException {

        String time1 = "09:00"; //my first input time 

        String timeEnds = "4:00"; //my second input time 
        LocalTime timeStart = LocalTime.parse(time1); 

        while(time1!=timeEnds) {
             timeStart = timeStart.plusMinutes(30);           
             System.out.println(""+timeStart);         

        }

    }

}

1 个答案:

答案 0 :(得分:0)

请注意,就"4:00"而言,LocalTime.parse(CharSequence)不是本地时间的有效格式。您应该使用"04:00"


此处使用的一个技巧是首先检查结束时间是否早于开始时间。如果是这样,则结束时间与开始时间在一天的另一半之间。在这种情况下,我们将结束时间增加12小时。

打印时间时,我们使用自定义格式hh:mm。小写字母h的意思是“ 12小时制的小时”。

String time1 = "09:00"; //my first input time

String timeEnds = "04:00"; //my second input time
LocalTime timeStart = LocalTime.parse(time1);
LocalTime timeEnd = LocalTime.parse(timeEnds);
if (timeStart.isAfter(timeEnd)) {
    timeEnd = timeEnd.plusHours(12);
}

while(timeStart.isBefore(timeEnd)) {
    timeStart = timeStart.plusMinutes(30);
    System.out.println(timeStart.format(DateTimeFormatter.ofPattern("hh:mm")));

}