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

Java 如何确定具体时间是否在给定范围内?,java,Java,问题:我有一个包含小时的列表,例如: 08:15:00 08:45:00 09:00:00 12:00:00 ... 该应用程序允许用户预约一个特定的小时,比如说:8:15:00,每次会议需要半个小时 问题:如何确定这样的预约是否需要一个时段?我知道Calendar类有before()和after()方法,但这并不能解决我的问题。我的意思是,如果12:00有预约,12:00有另一个预约,在12:15再预约之前,如何预防 编辑: 我尝试过使用我之前提到的方法,比如: Calendar cal1 =

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

问题:如何确定这样的预约是否需要一个时段?我知道Calendar类有before()和after()方法,但这并不能解决我的问题。我的意思是,如果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
}

我有一些约会类,有开始时间戳和持续时间,也有开始时间和结束时间。然后,在将新约会添加到计划中时,检查具有新约会之前的开始时间的约会是否未超过提议的新约会的开始时间

具体如何做取决于您如何存储数据、格式等,但通常您只需检查从请求时间到请求时间+请求长度之间的任何时间是否有约会

// Example (using int time(1 = 1 minute), assuming that appointments can only be at 15min intervals)
boolean isHalfHourTimeSlotAvaliable(int time) {
    for (int i = 0; i < appointments.size(); i++) {
        if (appointments.get(i).time == time || appointments.get(i).time == time + 15) {
            return false;
        }
    }
    return true;
}
//示例(使用int time(1=1分钟),假设约会只能间隔15分钟)
布尔值IshalfHourtimeSlotAvailable(整数时间){
对于(int i=0;i
检查要检查的日期是否介于提供的两个日期之间:

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();

然后,您可以简单地执行一个
计划
类扩展
数组列表
,添加一个方法
isDateAvailable(datetocheck)
,迭代约会列表并检查是否没有人冲突。

我尝试过使用我前面提到的方法,比如:Calendar cal1=Calendar.getInstance();//例如,12:00:00 Calendar cal2=Calendar.getInstance();//对于exmaple 12:30:00 Calendar userTime=Calendar.getInstance();//测试时间:12:15:00如果(user.after(cal1)和&user.before(cal2)){…//do sth}尝试抛出一些代码,以便使用。人们试图在这里向你展示如何改进你的代码,而不仅仅是让你在没有学习的情况下剪切和粘贴代码。我不需要代码,所以不用担心:),我想[我知道]我遗漏了一些愚蠢的细节。只需要你给个提示:)
public class Appointment{

 private Date start;
 private Date end;

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

}