你的位置:首页 > 操作系统

[操作系统]【代码笔记】传身份证号码可返回生日字符串


代码:

复制代码
- (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