我正在用Java开发一家餐馆的在线预订系统。我想知道表是否已保留。我想出了这段代码。
我不确定如何实现此逻辑。
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;
}
}
}
}
答案 0 :(得分:2)
您可以使用DateTimeFormatter
将时间字符串解析为LocalTime
,然后检查current
是否在start
和end
之间:
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点。 current
的凌晨1点不会导致reserved
设置为true。为此,您需要一个日期。