【问题标题】:UIDatePicker minimum date with no sundayUIDatePicker 没有星期天的最小日期
【发布时间】:2015-02-19 17:57:01
【问题描述】:

如何将 UIDatePicker 的最小日期设置为今天 + 5 天,这 5 天不包括星期日?

【问题讨论】:

    标签: ios nsdate uidatepicker


    【解决方案1】:

    下面的代码首先检查当前工作日(公历 => 星期日=1)。如果今天是星期二之后的一天,那么今天+5 天后会有一个星期日(参见offset 的计算)。 计算偏移量后,将添加到当前日期。

    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSDate *currentDate = [NSDate date];
    
    NSDateComponents *components = [gregorian components:NSWeekdayCalendarUnit fromDate:currentDate];
    int offset = (components.weekday >= 3) ? 6 : 5;
    NSDate *minDate = [gregorian dateByAddingUnit:NSDayCalendarUnit value:offset toDate:currentDate options:0];
    
    //datePicker.minimumDate = minDate;
    

    【讨论】:

    • 即将发布一个非常相似的答案,但我认为应该是 components.weekday >= 3 since 3 == Tuesday
    • 这一行 NSDate *minDate = [gregorian dateByAddingUnit:NSDayCalendarUnit value:offset toDate:currentDate options:0];仅适用于 iOS8。 iOS 7 呢?
    • 对于iOS7,您可以使用dateByAddingComponents:toDate:options:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多