如何在TimePicker上创建两个时间范围?JAVA
我已经在Java上创建了一个时间选择器。我已经实现了否决一个射程时间(12小时到23.30小时)。但我想设定两个不同的可用时间范围,例如(12h到15h和19h到23h)。我创建此覆盖是为了实现创建一个可用时间范围:如何在TimePicker上创建两个时间范围?JAVA,java,time,timepicker,localtime,Java,Time,Timepicker,Localtime,我已经在Java上创建了一个时间选择器。我已经实现了否决一个射程时间(12小时到23.30小时)。但我想设定两个不同的可用时间范围,例如(12h到15h和19h到23h)。我创建此覆盖是为了实现创建一个可用时间范围: public class SampleTimeVetoPolicy implements TimeVetoPolicy { @Override public boolean isTimeAllowed(LocalTime time) { return P
public class SampleTimeVetoPolicy implements TimeVetoPolicy {
@Override
public boolean isTimeAllowed(LocalTime time) {
return PickerUtilities.isLocalTimeInRange(time,LocalTime.of(12,00),LocalTime.of(23,30),true);
}
}
我不知道如何使这两个不同的范围
我使用实际覆盖执行的示例:
谢谢大家!(使用的库是lgooddatepicker)最“简单”的解决方案可能是执行以下操作
return PickerUtilities.isLocalTimeInRange(...) || PickerUtilities.isLocalTimeInRange(...);
一个更健壮的解决方案是创建一个
TimeRange
类(获取范围的开始和结束时间)它有一个包含样式的方法,并构建一个列表,只需在列表上循环,直到完成循环或返回false返回PickerUtilities.isLocalTimeInRange(…)| PickerUtilities.isLocalTimeInRange(…)代码>?你甚至可以创建一个范围列表
,让生活更轻松!它与| |语句一起工作。我想我不能在回程线路上使用| |。太多了@AndresLuengoBlazquez如果您认为return语句中的|
太难阅读,您可以编写一个If
语句和两个或三个以上的return
语句。在经验丰富的程序员中,return
语句中的|
和&
是很常见的(有时也会过度使用IMHO)。