java - 检查我的当前时间是否存在于 java android 中的 7:00 PM -10.00 AM
问题描述
示例:我的当前时间 = 8:25 PM 这意味着当前时间在晚上 7:00 到上午 10:00 之间。那么我如何确定它以及如果里面显示一条消息?
这是餐厅时间限制。从晚上 7:00 到上午 10:00 时间范围内用户不能订购任何东西。
try {
// Start Time
String string1 = "07:00 PM";
Date time1 = new SimpleDateFormat("hh:mm a").parse(string1);
Calendar calendar1 = Calendar.getInstance();
calendar1.setTime(time1);
calendar1.add(Calendar.DATE, 1);
// End Time
String string2 = "10:00 AM";
Date time2 = new SimpleDateFormat("hh:mm a").parse(string2);
Calendar calendar2 = Calendar.getInstance();
calendar2.setTime(time2);
calendar2.add(Calendar.DATE, 1);
// Get Current Time
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm a");
String currenttime = sdf.format(date);
Date d = new SimpleDateFormat("hh:mm a").parse(currenttime);
Calendar calendar3 = Calendar.getInstance();
calendar3.setTime(d);
calendar3.add(Calendar.DATE, 1);
Date x = calendar3.getTime();
if (x.after(calendar1.getTime()) && x.before(calendar2.getTime())) {
System.out.println("Not possible to order now");
}
else
{
System.out.println("YES POSSIBLE");
}
} catch (ParseException e) {
e.printStackTrace();
}
解决方案
如果你想避免 NullPointerException 和 ParseException 检查:
public static boolean isAvailableForBooking() {
/* 10:00 AM */
final int OPEN_HOUR = 10; /* 0 - 23*/
final int OPEN_MINUTE = 0; /* 0 - 59*/
final int OPEN_SECOND = 0; /* 0 - 59*/
/* 07:00 PM */
final int CLOSED_HOUR = 19;
final int CLOSED_MINUTE = 0;
final int CLOSED_SECOND = 0;
Calendar openHour = Calendar.getInstance();
openHour.set(Calendar.HOUR_OF_DAY, OPEN_HOUR);
openHour.set(Calendar.MINUTE, OPEN_MINUTE);
openHour.set(Calendar.SECOND, OPEN_SECOND);
Calendar closedHour = Calendar.getInstance();
closedHour.set(Calendar.HOUR_OF_DAY, CLOSED_HOUR);
closedHour.set(Calendar.MINUTE, CLOSED_MINUTE);
closedHour.set(Calendar.SECOND, CLOSED_SECOND);
Calendar now = Calendar.getInstance();
return now.after(openHour) && now.before(closedHour);
}
推荐阅读
- javascript - Context.Provider 和 Context.Consumer 和 JavaScript 中的 document.querySelector() 一样吗?
- ruby - 用于链接到文件中部分的内容的 Serverspec 测试语句
- ios - 如何删除 iTunes Connect TestFlight “Beta App Review Information”以允许应用转移
- excel - 允许 Power Query 同时包含文本和数字
- mysql - 更新或创建条件数据作为输入
- excel-formula - 用于提取字符串末尾带有多个右括号的文本的 Excel 公式
- powershell - 使用 Powershell 创建应用服务或插槽
- java - backStack 中的片段
- amazon-web-services - Postfix 发送短信 - Debian
- javascript - 如何将 .then() 函数的响应放入 module.exports 中?