-1

誕生日に応じて誰かの年齢を見つける必要があるアプリに取り組んでいます。私は単純NSDateですが、どうすればこれを見つけることができますNSDateFormatterか?

4

4 に答える 4

24
- (NSInteger)ageFromBirthday:(NSDate *)birthdate {
    NSDate *today = [NSDate date];
    NSDateComponents *ageComponents = [[NSCalendar currentCalendar]
                                       components:NSCalendarUnitYear
                                       fromDate:birthdate
                                       toDate:today
                                       options:0];
    return ageComponents.year;
}

NSDateFormatter日付をフォーマットするためのものです(当たり前!)。経験則として、 に対して何らかの計算を実行する必要があるときはいつでも、および関連するクラス ( など)NSDateを使用します。NSCalendarNSDateComponents

于 2013-10-05T20:02:39.113 に答える
2

NSYearCalendarUnitは非推奨です。NSCalendarUnitYearに置き換えられます

- (NSString *) ageFromBirthDate:(NSString *)birthDate{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];
    NSDate *myDate = [dateFormatter dateFromString: birthDate];

    return [NSString stringWithFormat:@"%d ans", [[[NSCalendar currentCalendar] components:NSCalendarUnitYear fromDate:myDate toDate:[NSDate date] options:0] year]];
}
于 2014-12-16T17:02:25.687 に答える