美文网首页
java通过生日,判断是否满了18岁成年

java通过生日,判断是否满了18岁成年

作者: 燃英 | 来源:发表于2018-12-11 16:19 被阅读0次

一个很简单的需求,已知一个身份证或者日期,判断对应的人是否满了18岁。

网上有很多方法,有的就是直接按天算是否 大于 18年 乘以 365天,这些都可能不准确,毕竟存在闰年啊,闰月的,于是我自己写了一个:

public static boolean checkAdult(Date date) {

        Calendar current = Calendar.getInstance();
        Calendar birthDay = Calendar.getInstance();
        birthDay.setTime(date);
        Integer year = current.get(Calendar.YEAR) - birthDay.get(Calendar.YEAR);
        if (year > 18) {
            return true;
        } else if (year < 18) {
            return false;
        }
        // 如果年相等,就比较月份
        Integer month = current.get(Calendar.MONTH) - birthDay.get(Calendar.MONTH);
        if (month > 0) {
            return true;
        } else if (month < 0) {
            return false;
        }
        // 如果月也相等,就比较天
        Integer day = current.get(Calendar.DAY_OF_MONTH) - birthDay.get(Calendar.DAY_OF_MONTH);
        return  day >= 0;
    }

这样就能准确判断是否成年了

相关文章

网友评论

      本文标题:java通过生日,判断是否满了18岁成年

      本文链接:https://www.haomeiwen.com/subject/hprehqtx.html