Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UIDatePicker, setting maximum and minimum dates based on todays date

If I have a UIDatePicker, and I wish to set the minimum and maximum date range to be between thirty years ago and thirty years in the future, how would I set that up?

like image 789
cannyboy Avatar asked Jun 17 '10 19:06

cannyboy


1 Answers

Not tested, but you probably want something like this.

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]; 

Update for 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 
like image 181
warrenm Avatar answered Sep 26 '22 20:09

warrenm