2016-08-01 1 views

Répondre

2

Vous pouvez faire quelque chose comme,

NSDateFormatter *df = [[NSDateFormatter alloc]init]; 

[df setDateFormat:@"yyyy-MM-dd"]; 

NSDate *currentDate = [NSDate date]; 

NSString *currentDateStr = [[df stringFromDate:currentDate] stringByAppendingString:@" 23:59"]; 

[df setDateFormat:@"yyyy-MM-dd HH:mm"]; 

NSDate *maxDate = [df dateFromString:currentDateStr]; 

NSLog(@"max date : %@",maxDate); 

NSLog(@"max date str : %@",[df stringFromDate:maxDate]); 

yourDatePicker.maximumDate = maxDate; 

Mise à jour:

Une autre approche utilisant NSDateComponents comme suggéré par @droppy,

NSDateComponents *dateComponents = [[NSCalendar currentCalendar] components: NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear fromDate:[NSDate date]]; 
NSInteger day = [dateComponents day]; 
NSInteger month = [dateComponents month]; 
NSInteger year = [dateComponents year]; 
dateComponents.hour = 23; 
dateComponents.minute = 59; 

NSLog(@"%ld : %ld : %ld",(long)day,(long)month,(long)year); 

NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; 
NSDate *resultDate = [gregorianCalendar dateFromComponents:dateComponents]; 

NSDateFormatter *df = [[NSDateFormatter alloc]init]; 
[df setDateFormat:@"yyyy-MM-dd HH:mm"]; 

NSLog(@"result date : %@",resultDate); 
NSLog(@"result date string : %@",[df stringFromDate:resultDate]); 

yourDatePicker.maximumDate = resultDate; 
+1

Quelle horrible façon de le faire. – Droppy

+1

@Droppy: vous pouvez suggérer une autre approche si vous avez une meilleure idée !! – Lion

+0

Ouais en utilisant 'NSDateComponents'. – Droppy