From 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期一, 09 六月 2025 11:54:00 +0800 Subject: [PATCH] 6.9新增登录失败冻结逻辑 --- springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AgeUtils.java | 145 +++++++++++++++++++++++++++++++---------------- 1 files changed, 95 insertions(+), 50 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AgeUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AgeUtils.java index f37264e..d55983e 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AgeUtils.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AgeUtils.java @@ -1,5 +1,8 @@ package com.panzhihua.common.utlis; +import cn.hutool.core.util.IdcardUtil; +import com.panzhihua.common.constants.Constants; + import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; @@ -11,54 +14,9 @@ // 根据年月日计算年龄,birthTimeString:"1994-11-14" public static int getAgeFromBirthTime(String birthTimeString) { // 先截取到字符串中的年、月、日 - int selectYear = Integer.parseInt(birthTimeString.substring(0,4)); - int selectMonth = Integer.parseInt(birthTimeString.substring(4,6)); - int selectDay = Integer.parseInt(birthTimeString.substring(6,8)); - // 得到当前时间的年、月、日 - 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; - } - - 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)); + int selectYear = Integer.parseInt(birthTimeString.substring(0, 4)); + int selectMonth = Integer.parseInt(birthTimeString.substring(4, 6)); + int selectDay = Integer.parseInt(birthTimeString.substring(6, 8)); // 得到当前时间的年、月、日 Calendar cal = Calendar.getInstance(); int yearNow = cal.get(Calendar.YEAR); @@ -107,8 +65,95 @@ 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; + } + + /** + * 根据身份证号判断年龄段 + * @param idCard 身份证号 + * @return 年龄段(1.80-89周岁 2.90-99周岁 3.100周岁(含)以上) + */ + public static int getAgeCategory(String idCard){ + int nub = -1; + int age = 0; + try { + age = IdcardUtil.getAgeByIdCard(idCard); + }catch (Exception e){ + return -1; + } + if (age >= Constants.EIGHTY && age < Constants.NINETY) { + nub = 1; + }else if (age >= Constants.NINETY && age < Constants.ONE_HUNDRED){ + nub = 2; + }else if (age >= Constants.ONE_HUNDRED){ + nub = 3; + } + return nub; + } + + 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) { - int age = getAgeFromBirthTime("1995-08-18"); - System.out.println(age); + String yese = "19980516"; + String year = yese.substring(0, 4); + String month = yese.substring(4, 6); + String ri = yese.substring(6, 8); } } -- Gitblit v1.7.1