怎样根据身份证号码计算年龄?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样根据身份证号码计算年龄?相关的知识,希望对你有一定的参考价值。

参考技术A

根据身份证号码提取出年龄的方法如下:

准备材料:身份证号码、函数公式

1、在身份证信息的后方选择一个单元格,标记年龄,然后选择这个单元格。

2、在WPS里边有一个常用公式,如果所示,点击插入---函数--常用函数。

3、如果不是WPS的话可以使用year函数,如图所示,点击启动这个公式。

4、然后公式就自动是插入到选定的表格里边了,输入需要提前的部分来计算。

5、结果出来后使用Ctrl+enter确定一下函数功能,然后复制公式就可以了。

6、移动到公式下方,当箭头变黑的时候往下边拖动来复制公式,然后就可以快速的计算全部身份证进行的年龄了。

《公民身份号码》主要内容如下:

范围:

该标准规定了公民身份号码的编码对象、号码的结构和表现形式,使每个编码对象获得一个唯一的、不变的法定号码。

编码对象:

公民身份号码的编码对象是具有中华人民共和国国籍的公民。

结构:

(身份证号码第一位到第六位)公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

地址码:

华北地区:北京市|110000,天津市|120000,河北省|130000,山西省|140000,内蒙古自治区|150000。

东北地区: 辽宁省|210000,吉林省|220000,黑龙江省|230000。

华东地区: 上海市|310000,江苏省|320000,浙江省|330000,安徽省|340000,福建省|350000,江西省|360000,山东省|370000。

华中地区: 河南省|410000,湖北省|420000,湖南省|430000。

华南地区:广东省|440000,广西壮族自治区|450000,海南省|460000。

西南地区:重庆市|500000,四川省|510000,贵州省|520000,云南省|530000,西藏自治区|540000。

西北地区: 陕西省|610000,甘肃省|620000,青海省|630000,宁夏回族自治区|640000,新疆维吾尔自治区|650000。

台湾地区:台湾省|710000。

港澳地区:香港特别行政区|810000,澳门特别行政区|820000。

表示编码对象常住户口所在县级行政区的行政区划代码,按GB/T2260的规定执行。

中国大陆居民身份证号码中的地址码的数字编码规则为:

第一、二位表示省级行政区。

第一位数字是以前的大区制代码。第二位是大区所在省市编码。全国共分为8个大区:华北(1)、东北(2)、华东(3)、中南(4)、西南(5)、西北(6)、台湾(7)和港澳(8)。

第三、四位表示地级行政区。其中,01-20,51-70表示地级市;21-50表示地区、自治州、盟;90表示省直辖县级行政单位;直辖市身份证中01表示市辖区,02表示县。

第五、六位表示县级行政区。01-18表示市辖区或地区、自治州、盟辖县级市;21-80表示县、旗;81-99表示省直辖县级行政单位。

以上内容参考百度百科居民身份证号码

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;

    

    

}

 

以上是关于怎样根据身份证号码计算年龄?的主要内容,如果未能解决你的问题,请参考以下文章

如何用身份证号码算出年龄???

JS根据身份证号码精确计算年龄和性别

身份证号码出来年龄函数

pandas根据身份证计算年龄

用excel怎样计算年龄?

如何利用身份证号码计算出生年月,年龄及性别