用Java从任意给定的身份证号码中提取此人的出生日期
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Java从任意给定的身份证号码中提取此人的出生日期相关的知识,希望对你有一定的参考价值。
用Java从任意给定的身份证号码中提取此人的出生日期,例子如下:
public class TestCpublic static void main(String[] args)
//18位的第二代身份证,出生日期是从7位到14位是出生日期
String str="450919199903050123";
//字符串截取下标从0开始的
String birthday=str.substring(6, 14);
System.out.println(birthday);
结果:
19990305 参考技术A .....总共18位。。。去掉后4位,,再往前的8位数不就是生日嘛。。追问
要具体的程序
追答String 身份证号="210213198009051234";
String 生日=身份证号.substring(6,14);
public static String getBirthday(String idNumber)
return idNumber.substring(6, 14);
public static void main(String[] args)
String birthday = getBirthday("512501197203035172");
System.out.println(birthday);
参考技术C 用substring这个方法
具体自己写
我以前搞个身份证demo想要找我
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;
}
以上是关于用Java从任意给定的身份证号码中提取此人的出生日期的主要内容,如果未能解决你的问题,请参考以下文章
在EXCELL里输入身份证号后,怎样利用函数提取性别,生日呢?