下面一段代码给大家分享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