如何在iOS中的UIDatePicker中仅显示七天?

时间:2016-07-01 05:36:01

标签: ios objective-c uidatepicker

我需要在七天之后才能展示。如何使用UIDatePicker实现此目的以及如何为UIDatePicker设置最小和最大日期。提前谢谢。

3 个答案:

答案 0 :(得分:9)

[datePicker setMinimumDate:[NSDate date]];
[datePicker setMaximumDate:[NSDate dateWithTimeIntervalSinceNow:60*60*24*7]];

他只想要七天,包括当前日期。

答案 1 :(得分:3)

小心谨慎,不要过于简单地添加时间:简单地添加秒可能会遇到针对夏令时转换的边缘情况(例如)。使用NSCalendar来帮助管理时间计算总是一个好主意。

NSDate *today = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
calendar.timeZone = [NSTimeZone localTimeZone];
NSDate *endDate = [calendar dateByAddingUnit:NSCalendarUnitDay value:7 toDate:today options:0];

在7天期间发生夏令时的情况下,上述代码中的结果endDate将与简单地添加秒相差一小时。那一小时可能会突破一天的变化,导致(罕见的)边缘情况失败。

答案 2 :(得分:0)

在datePicker中设置最小和最大日期:

[datePicker setMinimumDate:[NSDate date];
[datePicker setMaximumDate:[[NSDate date] dateByAddingTimeInterval:60*60*24*7]];