ios - UIDatePicker - 仅选择从现在起 15 分钟后的时间

标签 ios uidatepicker

我正在尝试实现一个 UIDatePicker,它只允许用户选择距当前时间 15 分钟或更长时间的日期。分钟分量以 15 分钟为间隔。用户不能选择已经过去的时间。这是我尝试过的方法,我相信我已经很接近了,但我不确定我还缺少什么来完善它;

        UIDatePicker * datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 44, 320, 163)];
        datePicker.clipsToBounds=YES;
        datePicker.datePickerMode=UIDatePickerModeTime;
        datePicker.minuteInterval = 15;
        datePicker.minimumDate=[[NSDate date] dateByAddingTimeInterval:60*15];
        [datePicker addTarget:self action:@selector(dateChanged:)
             forControlEvents:UIControlEventValueChanged];
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat: @"EE dd MMM"];
        NSString *weekday = [dateFormatter stringFromDate:[NSDate date]];
        [dateFormatter setDateFormat:@"HH:mm"];
        self.time = [NSString stringWithFormat:@"%@ - Time: %@",weekday,[dateFormatter stringFromDate:datePicker.date]];//self.time is an NSString

这是我的 dateChanged 方法:

- (void)dateChanged:(UIDatePicker *)sender {

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat: @"EE dd MMM"];
NSString *weekday = [dateFormatter stringFromDate: sender.date];
[dateFormatter setDateFormat:@"HH:mm"];

self.time =[NSString stringWithFormat:@"%@ - Time: %@",weekday,[dateFormatter stringFromDate:sender.date]];

但是,如果现在是 15:56,我选择 16:00,我得到的是 16:12。这是不正确的。我应该不能选择16:00,我应该只能选择16:15。另一个例子,如果是 16:10,我应该只能选择 16:30.etc。我对此有点困难。它四舍五入到最接近的一刻钟。有任何问题请告诉我。

用户只能选择15分钟间隔,而且必须是当前15分钟间隔的15分钟。例如,如果是 10:50,则用户只能选择 11:15。如果是 10:20,用户应该只能选择 10:45。

我相信我非常接近,但我无法弄清楚其余的逻辑。

最佳答案

尝试算法:targetMinTime = currentTime + 30 - (currentTime % 15)

关于ios - UIDatePicker - 仅选择从现在起 15 分钟后的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24513593/

相关文章:

ios - Xamarin iOS中使用NSSuperscriptAttributeName的NSAttributedString

iphone - Objective - C - 我应该使用什么设计模式来进行 View 转换和 View 通信?

ios - 在 NSMutableArray 中保留唯一对象的 id

string - 更改 UIDatePicker 文本颜色

ios - 如何检测 UINavigationController 动画何时结束?

ios - UIPushEffect 没有所需的 "up flick"效果

ios - 选择日期后如何禁用 UIDatePicker?

c# - Xamarin.iOS UITextField 日期格式不起作用

swift - 不计秒

ios - 如何在 swift 中将间隔值添加到 UIDatePicker 中