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