UIDatePicker,根据今天的日期设置最大和最小日期

can*_*boy 39 iphone objective-c nsdate uidatepicker

如果我有一个UIDatePicker,并且我希望将最小和最大日期范围设置为三十年前到三十年之间,我该如何设置它?

war*_*enm 80

没有测试,但你可能想要这样的东西.

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:30];
NSDate *maxDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[comps setYear:-30];
NSDate *minDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];

[datePicker setMaximumDate:maxDate];
[datePicker setMinimumDate:minDate];
Run Code Online (Sandbox Code Playgroud)

Swift 4.1的更新

let calendar = Calendar(identifier: .gregorian)
var comps = DateComponents()
comps.year = 30
let maxDate = calendar.date(byAdding: comps, to: Date())
comps.year = -30
let minDate = calendar.date(byAdding: comps, to: Date())
datePicker.maximumDate = maxDate
datePicker.minimumDate = minDate
Run Code Online (Sandbox Code Playgroud)


Ven*_*ari 18

m_datePicker.maximumDate = [NSDate date];
Run Code Online (Sandbox Code Playgroud)

您可以使用此行代码设置最大日期(今天).


小智 6

我的快速4版@toddg是:

let currentDate = Date()
var dateComponents = DateComponents()
let calendar = Calendar.init(identifier: .gregorian)
dateComponents.year = -100
let minDate = calendar.date(byAdding: dateComponents, to: currentDate)
dateComponents.year = -13
let maxDate = calendar.date(byAdding: dateComponents, to: currentDate)
Run Code Online (Sandbox Code Playgroud)

对我来说很棒!


use*_*052 5

将最大日期设置为今天 Swift 4.2

datePicker.maximumDate = Date()
Run Code Online (Sandbox Code Playgroud)