huanghongfa
2021-06-23 b057f9985a360fcfeb3aa6e96eae99deccffa1d2
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AgeUtils.java
@@ -62,11 +62,72 @@
        return getAgeFromBirthTime(birthTimeString);
    }
    public static String getAgeFormatBirthday(String brithday) {
        if(StringUtils.isEmpty(brithday)){
            return "";
        }
        String year = brithday.substring(0,4);
        String month = brithday.substring(4,6);
        String ri = brithday.substring(6,8);
        return year + "-" + month + "-" + ri;
    }
    public static int getAgeFromBirthTimes(String birthTimeString) {
        // 先截取到字符串中的年、月、日
        int selectYear = Integer.parseInt(birthTimeString.substring(0,4));
        int selectMonth = Integer.parseInt(birthTimeString.substring(5,7));
        int selectDay = Integer.parseInt(birthTimeString.substring(8,10));
        // 得到当前时间的年、月、日
        Calendar cal = Calendar.getInstance();
        int yearNow = cal.get(Calendar.YEAR);
        int monthNow = cal.get(Calendar.MONTH) + 1;
        int dayNow = cal.get(Calendar.DATE);
        // 用当前年月日减去生日年月日
        int yearMinus = yearNow - selectYear;
        int monthMinus = monthNow - selectMonth;
        int dayMinus = dayNow - selectDay;
        int age = yearMinus;// 先大致赋值
        if (yearMinus < 0) {// 选了未来的年份
            age = 0;
        } else if (yearMinus == 0) {// 同年的,要么为1,要么为0
            if (monthMinus < 0) {// 选了未来的月份
                age = 0;
            } else if (monthMinus == 0) {// 同月份的
                if (dayMinus < 0) {// 选了未来的日期
                    age = 0;
                } else if (dayMinus >= 0) {
                    age = 1;
                }
            } else if (monthMinus > 0) {
                age = 1;
            }
        } else if (yearMinus > 0) {
            if (monthMinus < 0) {// 当前月>生日月
            } else if (monthMinus == 0) {// 同月份的,再根据日期计算年龄
                if (dayMinus < 0) {
                } else if (dayMinus >= 0) {
                    age = age + 1;
                }
            } else if (monthMinus > 0) {
                age = age + 1;
            }
        }
        return age - 1;
    }
    public static int getAgeFromBirthTimes(long birthTimeLong) {
        Date date = new Date(birthTimeLong * 1000l);
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        String birthTimeString = format.format(date);
        return getAgeFromBirthTimes(birthTimeString);
    }
    public static void main(String[] args) {
        String yese = "19980516";
        String year = yese.substring(0,4);
        String month = yese.substring(4,6);
        String ri = yese.substring(6,8);
        System.out.println();
    }
}