在我的应用程序中,我需要检查用户是否已满18岁。我为他提供了UIDatePickerView,并选择了他的生日日期。我将它存储在NSDate字段中。 如何检查自生日以来已经过去18年了?
答案 0 :(得分:10)
[[[NSCalendar currentCalendar] components:NSYearCalendarUnit fromDate:birthDate toDate:[NSDate date] options:0] year]
或Jonathan Grynspan指出,这会更好:
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
int years = [[gregorian components:NSYearCalendarUnit fromDate:birthDate toDate:[NSDate date] options:0] year];
[gregorian release];
现在使用ARC可以(过度)简短:
int years = [[[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] components:NSYearCalendarUnit fromDate:birthDate toDate:[NSDate date] options:0] year];
答案 1 :(得分:-2)
应该用类似的东西来完成:
NSTimeInterval interval = [birthday timeIntervalSinceNow];
if (interval > 18*365*24*60*60) {
NSLog(@"You're more than 18");
}