//根据身份证号码转换成生日
+(NSString *)birthdayStrFromIdentityCard:(NSString *)numberStr{
// if(EMPTY_NIL_STR(numberStr))
// return nil;
NSMutableString *result = [NSMutableString stringWithCapacity:0];
NSString *year = nil;
NSString *month = nil;
BOOL isAllNumber = YES;
NSString *day = nil;
if([numberStr length]<14)
return result;
if (numberStr.length == 18) {
//**截取前14位
NSString *fontNumer = [numberStr substringWithRange:NSMakeRange(0, 13)];
//**检测前14位否全都是数字;
const char *str = [fontNumer UTF8String];
const char *p = str;
while (*p!='\0') {
if(!(*p>='0'&&*p<='9'))
isAllNumber = NO;
p++;
}
if(!isAllNumber)
return result;
year = [numberStr substringWithRange:NSMakeRange(6, 4)];
month = [numberStr substringWithRange:NSMakeRange(10, 2)];
day = [numberStr substringWithRange:NSMakeRange(12,2)];
[result appendString:year];
[result appendString:@"-"];
[result appendString:month];
[result appendString:@"-"];
[result appendString:day];
return result;
}else{
NSString *fontNumer = [numberStr substringWithRange:NSMakeRange(0, 11)];
//**检测前14位否全都是数字;
const char *str = [fontNumer UTF8String];
const char *p = str;
while (*p!='\0') {
if(!(*p>='0'&&*p<='9'))
isAllNumber = NO;
p++;
}
if(!isAllNumber)
return result;
year = [numberStr substringWithRange:NSMakeRange(6, 2)];
month = [numberStr substringWithRange:NSMakeRange(8, 2)];
day = [numberStr substringWithRange:NSMakeRange(10,2)];
// [result appendString:year];
// [result appendString:@"-"];
// [result appendString:month];
// [result appendString:@"-"];
// [result appendString:day];
NSString* resultAll = [NSString stringWithFormat:@"19%@-%@-%@",year,month,day];
return resultAll;
}
}