JAVA工具类:根据生日获取一个人的年龄

该Java代码实现了一个工具类,用于根据输入的生日字符串计算出个人的年龄。它使用SimpleDateFormat解析日期,通过Calendar对象获取当前日期,并对比出生日期来计算准确的年龄。如果出生日期晚于当前时间,代码会抛出异常。最后,在main方法中演示了如何使用这个工具类获取并打印年龄。

JAVA工具类:根据生日获取一个人的年龄

  1. 如果需要看相关视频讲解,可以看下 dy 搞编程的王小二,持续更新相关java面试题

上代码

package com.future.modules.biz.utils;

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

public class AgeUtils {

    public static  int getAge(String strDate) throws Exception {

         SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
         Date birthDay =  sdf.parse(strDate);

        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--;//当前月份在生日之前,年龄减一

} } return age; }


    public static void main(String[] args) {
        try {
          int  age = getAge("06/08/1992");           //由出生日期获得年龄***
          System.out.println("age:"+age);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值