问题:我有一个包含小时的列表,例如: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)
检查要检查的日期是否在提供的两个之间:
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),迭代约会列表并检查没有人冲突.
| 归档时间: |
|
| 查看次数: |
9454 次 |
| 最近记录: |