通过出生年月得到当前年龄java代码实例

此java示例是通过输入出生年龄计算年龄的代码:

import java.text.SimpleDateFormat;
import java.util.Date;


public class Test {
    public static int getAgeByBirthDay(String birthDay){
        if (birthDay == null || birthDay.length()<4) {
            return 0;
        }
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        //得到当前的年份
        String cYear = sdf.format(new Date()).substring(0,4);
        String cMouth = sdf.format(new Date()).substring(5,7);
        String cDay = sdf.format(new Date()).substring(8,10);
        //得到生日年份
        String birth_Year = birthDay .substring(0,4);
        String birth_Mouth = birthDay .substring(5,7);
        String birth_Day = birthDay .substring(8,10);
        int age = Integer.parseInt(cYear) - Integer.parseInt(birth_Year);
        if ((Integer.parseInt(cMouth) - Integer.parseInt(birth_Mouth))<0) {
            age=age-1;
        }else if ((Integer.parseInt(cMouth) - Integer.parseInt(birth_Mouth))==0) {
            if ( (Integer.parseInt(cDay) - Integer.parseInt(birth_Day))>0) {
                age=age-1;
            }else {
                age = Integer.parseInt(cYear) - Integer.parseInt(birth_Year);
            }
        }else if ((Integer.parseInt(cMouth) - Integer.parseInt(birth_Mouth))>0) {
            age = Integer.parseInt(cYear) - Integer.parseInt(birth_Year);
        }


        return age;
    }

    public static void main(String[] args) {
        Test test=new Test();
        int age=test.getAgeByBirthDay("2015-05-11");//输入出生年份;
        System.out.println(age);
    }
}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
我很高兴回答这个问题。以下是Java代码,可以根据身份证获取出生年月日,性别和年龄: ```java import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class IDCardUtil { /** * 根据身份证号获取出生日期、性别和年龄 * @param idCard 身份证号 * @return 出生日期、性别和年龄 */ public static String getBirthAndSexAndAge(String idCard) { String result = ""; if (idCard != null && idCard.length() == 18) { String birth = idCard.substring(6, 14); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); try { Date birthDate = sdf.parse(birth); Calendar cal = Calendar.getInstance(); if (cal.before(birthDate)) { throw new IllegalArgumentException("身份证号不正确"); } int yearNow = cal.get(Calendar.YEAR); int monthNow = cal.get(Calendar.MONTH) + 1; int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH); cal.setTime(birthDate); int yearBirth = cal.get(Calendar.YEAR); int monthBirth = cal.get(Calendar.MONTH) + 1; int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH); int age = yearNow - yearBirth; if (monthNow < monthBirth || (monthNow == monthBirth && dayOfMonthNow < dayOfMonthBirth)) { age--; } String sex = ""; if (Integer.parseInt(idCard.substring(16, 17)) % 2 == ) { sex = "女"; } else { sex = "男"; } result = "出生日期:" + birth.substring(, 4) + "年" + birth.substring(4, 6) + "月" + birth.substring(6) + "日,性别:" + sex + ",年龄:" + age + "岁"; } catch (ParseException e) { e.printStackTrace(); } } return result; } } ``` 使用方法: ```java String idCard = "身份证号码"; String result = IDCardUtil.getBirthAndSexAndAge(idCard); System.out.println(result); ``` 其中,idCard 是要查询的身份证号码,result 是返回的结果,包括出生日期、性别和年龄

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值