1. 程式人生 > >【程式碼筆記】iOS-傳身份證號碼可返回生日字串

【程式碼筆記】iOS-傳身份證號碼可返回生日字串

程式碼:

複製程式碼
- (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