计算两个日期之间的确切年份的通过时间

时间:2014-06-30 20:53:12

标签: ios objective-c nsdatecomponents

此代码运行良好,除了一件事。

如果picker.date06/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}}

1 个答案:

答案 0 :(得分:0)

因此,如果出生日期是18年前的日期,那么你18岁了吗?换句话说,似乎if语句应该是

if (ageComponents.year < 18)