我想将我的日期选择器设置为只允许选择偶数小时

Posted

技术标签:

【中文标题】我想将我的日期选择器设置为只允许选择偶数小时【英文标题】:I want to set my date picker to only allow even hour choices 【发布时间】:2021-06-19 15:45:29 【问题描述】:

例如只允许下午 6:00、晚上 7:00,但不允许晚上 6:30 或晚上 10:20。

我已经研究过使用日期选择器属性picker.minuteInterval,但这会将您限制在某些增量范围内,但不允许您做几个小时。

非常感谢任何有关此事的建议或信息。

【问题讨论】:

您需要对所选值进行后处理并将其向上或向下舍入到最接近的小时数,或者使用您自己的UIPickerView 你能分享你的代码或截图吗? 请发布您尝试过的代码。 【参考方案1】:
datepicker.minuteInterval = 30 //this is max
datepicker.date = Date().nearestEvenHourDate //initial date

 @IBAction func datePickerValueChanged(_ sender: Any) 
    datepicker.date = datepicker.date.nearestEvenHourDate //selected date manipuated
 

extension Date 
    var nearestEvenHourDate: Date 
        var hours = Calendar.current.dateComponents([.hour], from: self).hour ?? 0
        hours = hours % 2 == 0 ? hours : hours - 1
        return Calendar.current.date(bySettingHour: hours, minute: 0, second: 0, of: self)!
    

使用nearestEvenHourDate 来获得所需的行为(处理分钟以增加小时数)

【讨论】:

以上是关于我想将我的日期选择器设置为只允许选择偶数小时的主要内容,如果未能解决你的问题,请参考以下文章

如何在日期选择器中设置 3 个月的日期范围?

在本地通知中设置repeatInterval

datepickerdialog 隐藏日历并将我的日期选择器视图更改为标准模式

使用材料 ui 键盘日期选择器动态设置日期

哪个 JS 日期时间选择器正确处理 DST 转换?

如何在 android 日期选择器中将特定选定日期设置为最小日期? (爪哇)