根据身份证号获取出生日期,并计算年龄: 90与00后均可计算
- (void)viewDidLoad {
[super viewDidLoad];
NSString *str = @"611421199308261248"; //号码根据规则随便编的
//获取出生日期
NSString *dateStr = [self subsIDStrToDate:str];
NSLog(@"dateStr == %@",dateStr);
//获取年龄
NSString *ageStr = [self calculateAgeStr:str];
NSLog(@"ageStr == %@",ageStr);
}
截取身份证的出生日期并转换为日期格式:
//截取身份证的出生日期并转换为日期格式
-(NSString *)subsIDStrToDate:(NSString *)str{
NSMutableString *result = [NSMutableString stringWithCapacity:0];
NSString *dateStr = [str substringWithRange:NSMakeRange(6, 8)];
NSString *year = [dateStr substringWithRange:NSMakeRange(0, 4)];
NSString *month = [dateStr substringWithRange:NSMakeRange(4, 2)];
NSString *day = [dateStr substringWithRange:NSMakeRange(6,2)];
[result appendString:year];
[result appendString:@"-"];
[result appendString:month];
[result appendString:@"-"];
[result appendString:day];
return result;
}
根据出生日期计算年龄:
//计算年龄
-(NSString *)calculateAgeStr:(NSString *)str{
//截取身份证的出生日期并转换为日期格式
NSString *dateStr = [self subsIDStrToDate:str];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-mm-dd";
NSDate *birthDate = [formatter dateFromString:dateStr];
NSTimeInterval dateDiff = [birthDate timeIntervalSinceNow];
// 计算年龄
int age = trunc(dateDiff/(60*60*24))/365;
NSString *ageStr = [NSString stringWithFormat:@"%d", -age];
return ageStr;
}
打印结果:
dateStr == 1993-08-26
ageStr == 25