Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中,如何在给定时间(即上午11:00)和另一时间(即下午1:00)之间进行遍历?_Java - Fatal编程技术网

在java中,如何在给定时间(即上午11:00)和另一时间(即下午1:00)之间进行遍历?

在java中,如何在给定时间(即上午11:00)和另一时间(即下午1:00)之间进行遍历?,java,Java,我正在为爪哇的一家餐馆做一个在线预订系统。我想知道是否有人预订了一张桌子。我已经想出了这个密码 我不知道如何实现这一逻辑 public class Services { public void reserveTable(String tableSize ,int time_limit){ String starting_time = "11:00 am"; String ending_time = "1:00 pm";

我正在为爪哇的一家餐馆做一个在线预订系统。我想知道是否有人预订了一张桌子。我已经想出了这个密码

我不知道如何实现这一逻辑

public class Services {

    public void reserveTable(String tableSize ,int time_limit){         

        String starting_time = "11:00 am";
        String ending_time = "1:00 pm";
        String current_time = "12:00 pm"; //time at which new order arrived
        boolean reserved = false

        for (String start = "11:00 am"; start <= ending_time; start ++){
            if (current_time == start){
                reserved = true;
            }
        }        
   }         
}
公共类服务{
public void reserveTable(字符串表大小,int time_限制){
字符串开始\u time=“11:00 am”;
字符串结尾\u time=“1:00 pm”;
字符串current_time=“12:00 pm”;//新订单到达的时间
保留布尔值=false
对于(String start=“11:00 am”;start您可以使用a将时间字符串解析为s,然后检查当前的
是否介于
开始
结束
之间:

    DateTimeFormatter formatter = new DateTimeFormatterBuilder()
            .parseCaseInsensitive()
            .appendPattern("h:mm a")
            .toFormatter(Locale.ENGLISH);
    LocalTime start = LocalTime.parse("11:00 am", formatter);
    LocalTime end = LocalTime.parse("1:00 pm", formatter);
    LocalTime current = LocalTime.parse("12:00 pm", formatter);

    boolean reserved = false;
    if (current.isAfter(start) && current.isBefore(end)) {
        reserved = true;
    }

请注意,如果开始和结束跨越午夜,这将不起作用。例如,
start
是晚上11点,
end
是凌晨2点。凌晨1点的
当前
不会导致
reserved
设置为true。要使这种情况起作用,您需要一个日期。

您需要查看
LocalTime
(可能还有
LocalDateTime
),可能是一个开始的好地方。如果你不需要一个处理午夜的日期,请参阅我的解决方案