在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
),可能是一个开始的好地方。如果你不需要一个处理午夜的日期,请参阅我的解决方案