java实现根据出生日期获取年龄

    /**
     * @author solo
     * @date 2022-08-22 14:44
     * @param dateOfBirthStr 出生日期 String格式
     * @param endDateStr 截止日期 String格式
     * @return java.lang.Integer
     */
    public static Integer getAge(String dateOfBirthStr, String endDateStr) {
        DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        Date dateOfBirth = null;
        Date endDate = null;
        try {
            dateOfBirth = formatter.parse(dateOfBirthStr);
            endDate = formatter.parse(endDateStr);
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
        Integer age = 0;
        Calendar born = Calendar.getInstance();
        Calendar now = Calendar.getInstance();
        if (dateOfBirth != null) {
            now.setTime(endDate);
            born.setTime(dateOfBirth);
            if (born.after(now)) {
                throw new RuntimeException("年龄不能超过当前日期");
            }
            age = now.get(Calendar.YEAR) - born.get(Calendar.YEAR);
            int nowDayOfYear = now.get(Calendar.DAY_OF_YEAR);
            int bornDayOfYear = born.get(Calendar.DAY_OF_YEAR);
            if (nowDayOfYear < bornDayOfYear) {
                age -= 1;
            }
        }
        return age;
    }
© 版权声明
THE END
喜欢就支持一下吧
点赞1打赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容