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;
}
}
}