Android (JAVA)输入一个年月日计算出年龄(实岁)!

    在最近的项目开发中,遇到了一个问题就是计算年龄,网上虽然有很多这样的代码,但是计算出来的大多是周岁,即使有计算实岁的,也大多计算的不是很准确,代码整体的防护性也做的不好,于是决定自己写一个,把它整理成了一个工具类,方便以后的使用,
    计算年龄其实不难,你觉得难,可能是因为你的逻辑理清晰,好好的理一下思路,其实并没有那么难!

    好了闲话少说,直接来说一下,这个工具类的功能吧!你传给他一个date型的数据,它会给你返回一个年龄数值,如果传过来的不是data,需要先把String型转换成data,如果输入的内容为空,则返回0岁!!好了下面直接上代码!!

 

/**
 * 
 * 类描述:传入一个 date型的时间,得到当前的年龄 计算实岁(周岁)
 * 如果传入的data为null,则返回age为0
 * 类传参: date
 * Creat by Lyb on 2018/5/23 14:57
 */

public class AgeUtils {

    // 根据年月日计算年龄,birthTimeString:"1994-11-14"
    public static int getAgeFromBirthTime(Date  date) {
        // 得到当前时间的年、月、日
        if (date!=null){
        Calendar cal = Calendar.getInstance();
        int yearNow = cal.get(Calendar.YEAR);
        int monthNow = cal.get(Calendar.MONTH) + 1;
        int dayNow = cal.get(Calendar.DATE);
        //得到输入时间的年,月,日
        cal.setTime(date);
        int selectYear = cal.get(Calendar.YEAR);
        int selectMonth = cal.get(Calendar.MONTH) + 1;
        int selectDay =cal.get(Calendar.DATE);
        // 用当前年月日减去生日年月日
        int yearMinus = yearNow - selectYear;
        int monthMinus = monthNow - selectMonth;
        int dayMinus = dayNow - selectDay;
        int age = yearMinus;// 先大致赋值
        if (yearMinus <=0) {
            age = 0;
        }if (monthMinus < 0) {
                age=age-1;
            } else if (monthMinus == 0) {
                if (dayMinus < 0) {
                    age=age-1;
                }
            }
            return age;
        }
            return 0;
    }
}

如果你是一个Sting型的时间,你就需要把它转化成date,网上一找一大堆,在这里我就不再写了,

如果有任何不对的地方欢迎提出来,大家一起学习进步!!

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值