【代码笔记】传身份证号码可返回生日字符串

代码:

复制代码
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view.
 NSString *birthDay=[self birthdayStrFromIdentityCard:@"134825194401014241"]; NSLog(@"--birthDay-%@",birthDay); } //传身份证返回生日字符串
-(NSString *)birthdayStrFromIdentityCard:(NSString *)numberStr{ NSMutableString *result = [NSMutableString stringWithCapacity:0]; NSString *year = nil; NSString *month = nil; BOOL isAllNumber = YES; NSString *day = nil; if([numberStr length]<14) return result; //**截取前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; }
复制代码

 

输出:

2015-10-13 13:26:38.308 传身份证号码可返回生日字符串[6947:172533] --birthDay-1944-01-01

 

你可能感兴趣的:(【代码笔记】传身份证号码可返回生日字符串)