package com.czlis.interfaceCommon.utils; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.Map; public class LisUtil { /** * 生日格式为:yyyy-MM-dd * 根据出生日期计算年龄 * @param birthday * @return */ public static Map getAgeFromBirthDay(String birthday){ Map map = new HashMap<>(); int age = DateUtil.ageOfNow(birthday); if(age > 0){ map.put("age",String.valueOf(age)); map.put("unit","岁"); }else if(age == 0){ //不足一年的 long between = DateUtil.between(DateUtil.parse(birthday, "yyyy-MM-dd"), DateUtil.parse(DateUtil.today(), "yyyy-MM-dd"), DateUnit.DAY,true); if(between/30 > 0){ long month = between/30; map.put("age",String.valueOf(month)); map.put("unit","月"); }else if( between/30 == 0){ //不足一月的 map.put("age",String.valueOf(between)); map.put("unit","天"); }else{ } }else{ } return map; } /** * 根据年龄获取出生日期 * @param nl * @return */ public static Date getBirthDayFromAge(int nl, String nldw){ Calendar cal = Calendar.getInstance(); cal.setTime(DateUtil.date()); switch (nldw){ case "岁": cal.add(Calendar.YEAR,-nl); case "月": cal.add(Calendar.MONTH,-nl); case "天": cal.add(Calendar.DATE,-nl); } Date BirthDay = cal.getTime(); SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); String format = df.format(BirthDay); return DateUtil.parse(format,"yyyy-MM-dd"); } }