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

2018-12-11  本文已影响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;
    }

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

上一篇 下一篇

猜你喜欢

热点阅读