2

私のアプリケーションでは、ユーザーが18歳になったかどうかを確認する必要があります。私は彼にUIDatePickerViewを提供し、彼は彼の誕生日を選択します。NSDateフィールドに保存します。彼の誕生日からすでに18年が経過しているかどうかを確認するにはどうすればよいですか?

4

2 に答える 2

10
[[[NSCalendar currentCalendar] components:NSYearCalendarUnit fromDate:birthDate toDate:[NSDate date] options:0] year]

または、ジョナサン・グリンスパンが指摘したように、これはより良いでしょう:

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];
于 2011-02-28T15:53:53.153 に答える
-2

それはそのような何かで行われるべきです:

    NSTimeInterval interval = [birthday timeIntervalSinceNow];

if (interval > 18*365*24*60*60) {
    NSLog(@"You're more than 18");
}
于 2011-02-28T15:55:22.030 に答える