如何确定具体时间是否在给定范围之间?

iie*_*iie 2 java

问题:我有一个包含小时的列表,例如:08:15:00 08:45:00 09:00:00 12:00:00 ...应用程序允许用户预约特定小时:8:15:00,每次会议需要半个小时.

问题:如何确定预约是否需要这样的插槽?我知道Calendar类在before()之前有()后面的方法,但它没有解决我的问题.我的意思是如果在12:00和另一个在12:00预约,如何防止在12:15再制作一个?

编辑:

我尝试过使用前面提到的方法,比如:

Calendar cal1 = Calendar.getInstance(); // for example 12:00:00
Calendar cal2 = Calendar.getInstance(); // for exmaple 12:30:00
Calendar userTime = Calendar.getInstance(); // time to test: 12:15:00

if(user.after(cal1)&& user.before(cal2)){
... // do sth
}
Run Code Online (Sandbox Code Playgroud)

Eug*_*vas 5

检查要检查的日期是否在提供的两个之间:

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm");
Date before = sdf.parse("07/05/2012 08:00");
Date after = sdf.parse("07/05/2012 08:30");
Date toCheck = sdf.parse("07/05/2012 08:15");
//is toCheck between the two?
boolean isAvailable = (before.getTime() < toCheck.getTime()) && after.getTime() > toCheck.getTime();
Run Code Online (Sandbox Code Playgroud)

要预定一个确定的小时,我会做一个有两个日期和一个方法来检查这个:

public class Appointment{

 private Date start;
 private Date end;

 public boolean isBetween(Date toCheck){....}

}
Run Code Online (Sandbox Code Playgroud)

然后你可以简单地做一个Schedule类扩展ArrayList,添加一个方法isDateAvailable(Date toCheck),迭代约会列表并检查没有人冲突.