如何在Java的TimePicker中设置两个可用时间范围?
2026-5-25
实现多时间段的TimeVetoPolicy
#
嘿,我来帮你搞定这个多时间范围的需求!其实改起来很简单,你只需要把原来的单范围判断,扩展成
多个范围的逻辑或(||)判断
就可以了——只要时间落在任意一个允许的范围内,就返回
true
,否则返回
false
。
下面是修改后的完整代码:
public class SampleTimeVetoPolicy implements TimeVetoPolicy {
@Override
public boolean isTimeAllowed(LocalTime time) {
// 第一个允许范围:12:00 - 15:00(包含边界)
boolean inFirstRange = PickerUtilities.isLocalTimeInRange(time, LocalTime.of(12, 00), LocalTime.of(15, 00), true);
// 第二个允许范围:19:00 - 23:00(包含边界)
boolean inSecondRange = PickerUtilities.isLocalTimeInRange(time, LocalTime.of(19, 00), LocalTime.of(23, 00), true);