IOS 根據身份證號碼獲取 年齡 生日 性別


/**

   從身份證上獲取年齡 18位身份證

 */

-(NSString *)getIdentityCardAge:(NSString *)numberStr

{

    

    NSDateFormatter *formatterTow = [[NSDateFormatter alloc]init];

    [formatterTow setDateFormat:@"yyyy-MM-dd"];

    

    

    

    

    NSDate *bsyDate = [formatterTow dateFromString:[self birthdayStrFromIdentityCard:numberStr]];

    

    

    

    NSTimeInterval dateDiff = [bsyDate timeIntervalSinceNow];

    

    

    int age = trunc(dateDiff/(60*60*24))/365;

    

    

    return [NSString stringWithFormat:@"%d",-age];

}

 

 

-(NSString *)birthdayStrFromIdentityCard:(NSString *)numberStr

{

    NSMutableString *result = [NSMutableString stringWithCapacity:0];

    NSString *year = nil;

    NSString *month = nil;

    

    BOOL isAllNumber = YES;

    

    NSString *day = nil;

    if([numberStr length]<18)

        return result;

    

    

    

    //**從第6位開始 截取8個數

    NSString *fontNumer = [numberStr substringWithRange:NSMakeRange(6, 8)];

    

    

    //**檢測前12位否全都是數字;

    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 = [NSString stringWithFormat:@"19%@",[numberStr substringWithRange:NSMakeRange(8, 2)]];

    //    NSLog(@"year ==%@",year);

    

    month = [numberStr substringWithRange:NSMakeRange(10, 2)];

    //    NSLog(@"month ==%@",month);

    day = [numberStr substringWithRange:NSMakeRange(12,2)];

    

    //    NSLog(@"day==%@",day);

    

    [result appendString:year];

    [result appendString:@"-"];

    [result appendString:month];

    [result appendString:@"-"];

    [result appendString:day];

    //    NSLog(@"result===%@",result);

    

    return result;

    

}

 

 

 

/**

 *  從身份證上獲取性別

 */

-(NSString *)getIdentityCardSex:(NSString *)numberStr

{

    NSString *sex = @"";

    //獲取18位 二代身份證  性別

    if (numberStr.length==18)

    {

        

        

        int sexInt=[[numberStr substringWithRange:NSMakeRange(16,1)] intValue];

        

        if(sexInt%2!=0)

        {

            NSLog(@"1");

            sex = @"男";

            

            

            

        }

        else

        {

            NSLog(@"2");

            sex = @"女";

        }

        

        

    }

    

    

    //  獲取15位 一代身份證  性別

    

    if (numberStr.length==15)

    {

        

        

        int sexInt=[[numberStr substringWithRange:NSMakeRange(14,1)] intValue];

        

        if(sexInt%2!=0)

        {

            NSLog(@"1");

            sex = @"男";

            

            

            

        }

        else

        {

            NSLog(@"2");

            sex = @"女";

        }

        

        

    }

    

    return sex;

    

    

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM