计算年龄工具类

main
hansha 2 years ago
parent ed679ad678
commit 737c3d9fce

@ -52,7 +52,7 @@ public class SzxcJmInfo extends BaseEntity
/** 年龄 */ /** 年龄 */
@Excel(name = "年龄") @Excel(name = "年龄")
private Long age; private Integer age;
/** 性别0男 1女 2未知 */ /** 性别0男 1女 2未知 */
@Excel(name = "性别", readConverterExp = "0=男,1=女,2=未知") @Excel(name = "性别", readConverterExp = "0=男,1=女,2=未知")
@ -206,12 +206,12 @@ public class SzxcJmInfo extends BaseEntity
{ {
return bornDate; return bornDate;
} }
public void setAge(Long age) public void setAge(Integer age)
{ {
this.age = age; this.age = age;
} }
public Long getAge() public Integer getAge()
{ {
return age; return age;
} }

@ -5,9 +5,11 @@ import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.szxc.domain.SzxcJmInfo; import com.ruoyi.szxc.domain.SzxcJmInfo;
import com.ruoyi.szxc.mapper.SzxcJmInfoMapper; import com.ruoyi.szxc.mapper.SzxcJmInfoMapper;
import com.ruoyi.szxc.service.ISzxcJmInfoService; 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 org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -19,7 +21,7 @@ import java.util.List;
@Service @Service
public class SzxcJmInfoServiceImpl implements ISzxcJmInfoService public class SzxcJmInfoServiceImpl implements ISzxcJmInfoService
{ {
@Autowired @Resource
private SzxcJmInfoMapper szxcJmInfoMapper; private SzxcJmInfoMapper szxcJmInfoMapper;
/** /**
@ -31,7 +33,11 @@ public class SzxcJmInfoServiceImpl implements ISzxcJmInfoService
@Override @Override
public SzxcJmInfo selectSzxcJmInfoById(Long id) 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") @DataScope(deptAlias = "j")
public List<SzxcJmInfo> selectSzxcJmInfoList(SzxcJmInfo szxcJmInfo) public List<SzxcJmInfo> selectSzxcJmInfoList(SzxcJmInfo szxcJmInfo)
{ {
return szxcJmInfoMapper.selectSzxcJmInfoList(szxcJmInfo); List<SzxcJmInfo> szxcJmInfos = szxcJmInfoMapper.selectSzxcJmInfoList(szxcJmInfo);
szxcJmInfos.forEach(info->{
Date bornDate = info.getBornDate();
int ageByBirth = GetAgeByBirthdayUtil.getAgeByBirth(bornDate);
info.setAge(ageByBirth);
});
return szxcJmInfos;
} }
/** /**

@ -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;
}
}
Loading…
Cancel
Save