From 737c3d9fcef9ccd78341139ecca5162c0a421737 Mon Sep 17 00:00:00 2001 From: hansha Date: Tue, 26 Mar 2024 17:14:32 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=B9=B4=E9=BE=84=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/szxc/domain/SzxcJmInfo.java | 6 +-- .../service/impl/SzxcJmInfoServiceImpl.java | 20 +++++++-- .../ruoyi/szxc/util/GetAgeByBirthdayUtil.java | 45 +++++++++++++++++++ 3 files changed, 64 insertions(+), 7 deletions(-) create mode 100644 ruoyi-szxc/src/main/java/com/ruoyi/szxc/util/GetAgeByBirthdayUtil.java diff --git a/ruoyi-szxc/src/main/java/com/ruoyi/szxc/domain/SzxcJmInfo.java b/ruoyi-szxc/src/main/java/com/ruoyi/szxc/domain/SzxcJmInfo.java index 6cb4791..125122b 100644 --- a/ruoyi-szxc/src/main/java/com/ruoyi/szxc/domain/SzxcJmInfo.java +++ b/ruoyi-szxc/src/main/java/com/ruoyi/szxc/domain/SzxcJmInfo.java @@ -52,7 +52,7 @@ public class SzxcJmInfo extends BaseEntity /** 年龄 */ @Excel(name = "年龄") - private Long age; + private Integer age; /** 性别(0男 1女 2未知) */ @Excel(name = "性别", readConverterExp = "0=男,1=女,2=未知") @@ -206,12 +206,12 @@ public class SzxcJmInfo extends BaseEntity { return bornDate; } - public void setAge(Long age) + public void setAge(Integer age) { this.age = age; } - public Long getAge() + public Integer getAge() { return age; } diff --git a/ruoyi-szxc/src/main/java/com/ruoyi/szxc/service/impl/SzxcJmInfoServiceImpl.java b/ruoyi-szxc/src/main/java/com/ruoyi/szxc/service/impl/SzxcJmInfoServiceImpl.java index f3ea76f..8856a6d 100644 --- a/ruoyi-szxc/src/main/java/com/ruoyi/szxc/service/impl/SzxcJmInfoServiceImpl.java +++ b/ruoyi-szxc/src/main/java/com/ruoyi/szxc/service/impl/SzxcJmInfoServiceImpl.java @@ -5,9 +5,11 @@ import com.ruoyi.common.utils.DateUtils; import com.ruoyi.szxc.domain.SzxcJmInfo; import com.ruoyi.szxc.mapper.SzxcJmInfoMapper; import com.ruoyi.szxc.service.ISzxcJmInfoService; -import org.springframework.beans.factory.annotation.Autowired; +import com.ruoyi.szxc.util.GetAgeByBirthdayUtil; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.Date; import java.util.List; /** @@ -19,7 +21,7 @@ import java.util.List; @Service public class SzxcJmInfoServiceImpl implements ISzxcJmInfoService { - @Autowired + @Resource private SzxcJmInfoMapper szxcJmInfoMapper; /** @@ -31,7 +33,11 @@ public class SzxcJmInfoServiceImpl implements ISzxcJmInfoService @Override public SzxcJmInfo selectSzxcJmInfoById(Long id) { - return szxcJmInfoMapper.selectSzxcJmInfoById(id); + SzxcJmInfo jmInfo = szxcJmInfoMapper.selectSzxcJmInfoById(id); + Date bornDate = jmInfo.getBornDate(); + int ageByBirth = GetAgeByBirthdayUtil.getAgeByBirth(bornDate); + jmInfo.setAge(ageByBirth); + return jmInfo; } /** @@ -44,7 +50,13 @@ public class SzxcJmInfoServiceImpl implements ISzxcJmInfoService @DataScope(deptAlias = "j") public List selectSzxcJmInfoList(SzxcJmInfo szxcJmInfo) { - return szxcJmInfoMapper.selectSzxcJmInfoList(szxcJmInfo); + List szxcJmInfos = szxcJmInfoMapper.selectSzxcJmInfoList(szxcJmInfo); + szxcJmInfos.forEach(info->{ + Date bornDate = info.getBornDate(); + int ageByBirth = GetAgeByBirthdayUtil.getAgeByBirth(bornDate); + info.setAge(ageByBirth); + }); + return szxcJmInfos; } /** diff --git a/ruoyi-szxc/src/main/java/com/ruoyi/szxc/util/GetAgeByBirthdayUtil.java b/ruoyi-szxc/src/main/java/com/ruoyi/szxc/util/GetAgeByBirthdayUtil.java new file mode 100644 index 0000000..4df6d7e --- /dev/null +++ b/ruoyi-szxc/src/main/java/com/ruoyi/szxc/util/GetAgeByBirthdayUtil.java @@ -0,0 +1,45 @@ +package com.ruoyi.szxc.util; + +import java.util.Calendar; +import java.util.Date; + +public class GetAgeByBirthdayUtil { + /** + * + * 根据出生年月日计算年龄 + * @param birthday + * @return: int + */ + public static int getAgeByBirth(Date birthday){ + + //获取当前时间 + Calendar cal = Calendar.getInstance(); + + //获取出生日期的Calendar对象 + Calendar bir = Calendar.getInstance(); + bir.setTime(birthday); + //如果出生日期大于当前日期,则返回0 + if(cal.before(birthday)){ + return 0; + } + //取出当前年月日 + int nowYear = cal.get(Calendar.YEAR); + int nowMonth = cal.get(Calendar.MONTH); + int nowDay = cal.get(Calendar.DAY_OF_MONTH); + + //取出出生日期的年月日 + int birthYear = bir.get(Calendar.YEAR); + int birthMonth = bir.get(Calendar.MONTH); + int birthDay = bir.get(Calendar.DAY_OF_MONTH); + + //计算年份 + int age = nowYear - birthYear; + + //计算月份和日,看看是否大于当前月日,如果小于则减去一岁 + if(nowMonth < birthMonth || (nowMonth == birthMonth && nowDay < birthDay)){ + age--; + } + return age; + } + +}