zhaowenxuan
2024-09-19 19fd657f5a51cdeecc1a3fecff4b9cb8df078f53
增加计算年龄值与单位方法
1个文件已修改
37 ■■■■ 已修改文件
ltkj-common/src/main/java/com/ltkj/common/utils/DateUtils.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-common/src/main/java/com/ltkj/common/utils/DateUtils.java
@@ -3,11 +3,7 @@
import java.lang.management.ManagementFactory;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.*;
import java.util.Calendar;
import java.util.Date;
@@ -180,4 +176,35 @@
            w = 0;
        return weekDays[w];
    }
    /**
     * 根据生日计算年龄值以及年龄单位
     * @param birthday 生日
     * @return
     */
    public static AgeResult calculateAge(Date birthday){
        LocalDate currentDate = LocalDate.now();
        LocalDate birthLocalDate = birthday.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
        Period period = Period.between(birthLocalDate, currentDate);
        if (period.getYears() > 0){
            return new AgeResult(period.getYears(),1);
        }
        if (period.getMonths() > 0){
            return new AgeResult(period.getMonths(),2);
        }
        LocalDateTime birthDateTime = birthday.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
        LocalDateTime currentDateTime = LocalDateTime.now();
        Duration duration = Duration.between(birthDateTime, currentDateTime);
        long days = duration.toDays();
        if (days > 0){
            return new AgeResult((int) days,3);
        }
        long hours = duration.toHours();
        if (hours > 0){
            return new AgeResult((int) hours,4);
        }
        long minutes = duration.toMinutes();
        return new AgeResult((int) minutes,5);
    }
}