算出今年年龄是多少

package com.cbb.util;

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

import org.springframework.stereotype.Component;

/**
 * 传入出生日期计算出现在的年龄
 * 
 * @author 陈斌斌
 * @data 2022年04月28日 09点51分
 *
 */
@Component
public class AgeUtil {
    /**
     * 根据出生日期并且获得今天的日期计算出年龄
     * 
     * @param birthday
     * @return
     */
    public Integer getAge(Date birthday) {
        Integer age = 0;
        if (birthday != null) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            // 获得当前日期
            Date date = new Date();
            // 获得年份
            String year = sdf.format(date).substring(0, 4);
            // 获得当前月份
            String month = sdf.format(date).substring(5, 7);
            // 获得今天日期
            String day = sdf.format(date).substring(8, 10);
            // 获得某个人的出生年月日
            String oYear = sdf.format(birthday).substring(0, 4);
            String oMonth = sdf.format(birthday).substring(5, 7);
            String oDay = sdf.format(birthday).substring(8, 10);
            // 如果当前年份大于你的出生年份
            if (Integer.parseInt(year) - Integer.parseInt(oYear) > 0) {
                // 如果当前月份>你的出生的月份
                if ((Integer.parseInt(month) - Integer.parseInt(oMonth) > 0)) {
                    age = (Integer.parseInt(year) - Integer.parseInt(oYear));
                }
                // 如果当前年份==你的出生的年月份
                if (Integer.parseInt(month) - Integer.parseInt(oMonth) == 0) {
                    // 如果当前日期>你的出生的日期
                    if (Integer.parseInt(day) - Integer.parseInt(oDay) >= 0) {
                        // 你的年龄=当前年份-出生年份
                        age = (Integer.parseInt(year) - Integer.parseInt(oYear));
                    } else {
                        // 你的年龄=(当前年份-出生年份)-1
                        age = ((Integer.parseInt(year) - Integer.parseInt(oYear)) - 1);
                    }
                }
                // 如果当前月份<你的出生的月份
                if (Integer.parseInt(month) - Integer.parseInt(oMonth) < 0) {
                    age = (Integer.parseInt(year) - Integer.parseInt(oYear) - 1);
                }
            }
            return age;
        } else {
            return age;
        }

    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值