I want to get the minimum and maximum date from a date picker, but minimum date should be "- 18" of the current date and the maximum date should be "- 100" of current date.
Suppose current year is 2018 then I want minimum date 2000 and maximum date 1918.
What I have done so far is :
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDateComponents *components = [gregorian components:NSYearCalendarUnit fromDate:[NSDate date]]; NSInteger year = [components year]; int mindt = year - 18; int maxdt = year -100; // NSDate * MinDate = [components year] - 18; // NSDate * MaxDate = [components year] - 100; // self.datePicker.minimumDate = MinDate; // self.datePicker.maximumDate = MaxDate;
but I cant get this integer to my date format..
Try this:
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDate *currentDate = [NSDate date]; NSDateComponents *comps = [[NSDateComponents alloc] init]; [comps setYear:-18]; NSDate *minDate = [gregorian dateByAddingComponents:comps toDate:currentDate options:0]; [comps setYear:-150]; NSDate *maxDate = [gregorian dateByAddingComponents:comps toDate:currentDate options:0]; [comps release]; self.datePicker.minimumDate = minDate; self.datePicker.maximumDate = maxDate;
It may be easily translated to Swift 4.2:
let calendar = Calendar(identifier: .gregorian) let currentDate = Date() var components = DateComponents() components.calendar = calendar components.year = -18 components.month = 12 let maxDate = calendar.date(byAdding: components, to: currentDate)! components.year = -150 let minDate = calendar.date(byAdding: components, to: currentDate)! picker.minimumDate = minDate picker.maximumDate = maxDate
Look at this for Swift version. User negative value (-) to subtract and positive value to add date component.
1. Set minimum date
yourDatePicker.minimumDate = Calendar.current.date(byAdding: .year, value: -1, to: Date())
2. Set maximum date
yourDatePicker.maximumDate = Calendar.current.date(byAdding: .year, value: 1, to: Date())
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With