下面一段代码给大家分享java根据身份证计算年龄的方法,具体代码如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
birthdate = idcard.substring( 6 , 10 )+ "-" +idcard.substring( 10 , 12 )+ "-" +idcard.substring( 12 , 14 )
public static int getagefrombirthtime(string birthtimestring){
// 先截取到字符串中的年、月、日
string strs[] = birthtimestring.trim().split( "-" );
int selectyear = integer.parseint(strs[ 0 ]);
int selectmonth = integer.parseint(strs[ 1 ]);
int selectday = integer.parseint(strs[ 2 ]);
// 得到当前时间的年、月、日
calendar cal = calendar.getinstance();
int yearnow = cal.get(calendar.year);
int monthnow = cal.get(calendar.month) + 1 ;
int daynow = cal.get(calendar.date);
// 用当前年月日减去生日年月日
int yearminus = yearnow - selectyear;
int monthminus = monthnow - selectmonth;
int dayminus = daynow - selectday;
int age = yearminus;
if (yearminus < 0 ) { // 选了未来的年份
age = 0 ;
} else if (yearminus == 0 ) { // 同年的,要么为1,要么为0
if (monthminus < 0 ) { // 选了未来的月份
age = 0 ;
} else if (monthminus == 0 ) { // 同月份的
if (dayminus < 0 ) { // 选了未来的日期
age = 0 ;
} else if (dayminus >= 0 ) {
age = 1 ;
}
} else if (monthminus > 0 ) {
age = 1 ;
}
} else if (yearminus > 0 ) {
if (monthminus < 0 ) { // 当前月>生日月
} else if (monthminus == 0 ) { // 同月份的,再根据日期计算年龄
if (dayminus < 0 ) {
} else if (dayminus >= 0 ) {
age = age + 1 ;
}
} else if (monthminus > 0 ) {
age = age + 1 ;
}
}
return age;
}
|
下面在看下java根据出生日期获得年龄
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
public static int getage(date birthday) throws exception {
calendar cal = calendar.getinstance();
if (cal.before(birthday)) {
throw new illegalargumentexception(
"the birthday is before now.it's unbelievable!" );
}
int yearnow = cal.get(calendar.year);
int monthnow = cal.get(calendar.month);
int dayofmonthnow = cal.get(calendar.day_of_month);
cal.settime(birthday);
int yearbirth = cal.get(calendar.year);
int monthbirth = cal.get(calendar.month);
int dayofmonthbirth = cal.get(calendar.day_of_month);
int age = yearnow - yearbirth;
if (monthnow <= monthbirth) {
if (monthnow == monthbirth) {
if (dayofmonthnow < dayofmonthbirth) age--;
} else {
age--;
}
}
system.out.println( "age:" +age);
return age;
}
|
总结
以上所述是小编给大家介绍的java 根据身份证计算年龄,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:https://blog.csdn.net/HrlSnow/article/details/80266906