欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JAVA 根据身份证计算年龄的实现代码

程序员文章站 2023-12-17 00:00:40
下面一段代码给大家分享java根据身份证计算年龄的方法,具体代码如下所示: birthdate = idcard.substring(6,10)+"-"+idca...

下面一段代码给大家分享java根据身份证计算年龄的方法,具体代码如下所示:

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根据出生日期获得年龄

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 根据身份证计算年龄,希望对大家有所帮助

上一篇:

下一篇: