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