此代码运行良好,除了一件事。
如果picker.date
是06/30/1996
(18年前与今天同一天),则控制台会记录"younger than 18"
日志,但是当picker.date
的值为06/29/1996
时,它会执行相同的操作1}} int
比第一次约会早,所以它是18年+ 1天前。在这种情况下,它应显示第二个日志。我知道18是if语句中的"older than 18"
,但这是我最好的主意。因此,如果picker.date
的值早于18年前(与今天相比),我想注销UIDatePicker *picker = (UIDatePicker*)self.bdDate.inputView;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd/yyyy"];
NSString *dateStr = [dateFormatter stringFromDate:picker.date];
self.bdDate.text = [NSString stringWithFormat:@"%@",dateStr];
NSDate *today = [NSDate date];
NSDateComponents *ageComponents = [[NSCalendar currentCalendar]
components:NSYearCalendarUnit
fromDate:picker.date
toDate:today
options:0];
if (ageComponents.year <= 18) {
NSLog(@"younger than 18");
} else
{
NSLog(@"older than 18");
}
。提前致谢。
{{1}}
答案 0 :(得分:0)
因此,如果出生日期是18年前的日期,那么你18岁了吗?换句话说,似乎if
语句应该是
if (ageComponents.year < 18)