我正在开发一个简单的java应用程序,我必须在其中设置时间限制constratint。在我的应用程序中,我必须只允许在4小时范围内找到路线,例如,如果司机已经发布了下午3点的路线,骑手只有在他搜索上午11点(4小时之前)的时间才会找到它。 )和晚上7点(4小时后)。我在应用程序中使用12小时时间格式。我的代码是:
SimpleDateFormat parser = new SimpleDateFormat("hh:mm");
Date driverTimeLimit = null;
Date riderTimeCompare = null;
try {
driverTimeLimit = parser.parse(driver_Time);
riderTimeCompare = parser.parse(rider_Time);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar cal = Calendar.getInstance();
cal.setTime(driverTimeLimit);
cal.add(Calendar.HOUR_OF_DAY, 4);
cal.getTime();
Calendar cal1 = Calendar.getInstance();
cal1.setTime(driverTimeLimit);
cal1.add(Calendar.HOUR_OF_DAY, -4);
cal1.getTime();
if(riderTimeCompare.compareTo(cal.getTime())<=0 && riderTimeCompare.compareTo(cal1.getTime())>=0){
...
}
在我上面的代码中,driver_Time和rider_Time是两个叮叮,比如驱动程序的3:00和骑手的11:00。
我必须设置满足上午11:00和下午7:00时间限制的条件,或者时间应根据驾驶员的时间而变化。
请建议一些满足此条件的代码,包括上午和下午
答案 0 :(得分:0)
我已经通过以下代码解决了这个问题:
public static void main(String[] args) {
try {
String dTime = "03:00PM";
String rTime = "11:00AM";
System.out.println(convertTo24HoursFormat(dTime));
System.out.println(convertTo24HoursFormat(rTime));
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm");
Date dDate = dateFormat.parse(convertTo24HoursFormat(dTime));
Date rDate = dateFormat.parse(convertTo24HoursFormat(rTime));
System.out.println("Driver Date=" + dDate);
System.out.println("Rider Date=" + rDate);
Calendar calendar1 = Calendar.getInstance();
calendar1.setTime(dDate);
calendar1.add(Calendar.HOUR_OF_DAY, 4);
Calendar calendar2 = Calendar.getInstance();
calendar2.setTime(dDate);
calendar2.add(Calendar.HOUR_OF_DAY, -4);
System.out.println("Driver Date after adding 4 hours="
+ calendar1.getTime());
System.out.println("Driver Date after subtracting 4 hours="
+ calendar2.getTime());
System.out.println("Rider Date=" + rDate);
if (rDate.compareTo(calendar1.getTime()) <= 0
&& rDate.compareTo(calendar2.getTime()) >= 0) {
System.out.println("Route acceptable");
} else {
System.out.println("Route not acceptable");
}
} catch (ParseException ex) {
}
}
private static final DateFormat TWELVE_TF = new SimpleDateFormat("hh:mma");
private static final DateFormat TWENTY_FOUR_TF = new SimpleDateFormat(
"HH:mm");
public static String convertTo24HoursFormat(String twelveHourTime)
throws ParseException {
return TWENTY_FOUR_TF.format(TWELVE_TF.parse(twelveHourTime));
}