From f76c9c5beb39916771402de95f05be18f39a9db6 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Thu, 17 Dec 2020 14:34:33 +0800 Subject: [PATCH] finish vip_detail vipInfo fn --- zq-erp/src/main/java/com/matrix/core/tools/DateUtil.java | 135 +++++++++++++++++++++++++++++++++----------- 1 files changed, 101 insertions(+), 34 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/core/tools/DateUtil.java b/zq-erp/src/main/java/com/matrix/core/tools/DateUtil.java index bb10294..07a0984 100644 --- a/zq-erp/src/main/java/com/matrix/core/tools/DateUtil.java +++ b/zq-erp/src/main/java/com/matrix/core/tools/DateUtil.java @@ -5,6 +5,7 @@ import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; @@ -12,7 +13,7 @@ /** * 日期格式化,转换工具类 - * + * * @author Ron * @createTime 2014.08.30 */ @@ -90,7 +91,7 @@ /** * 返回年份 - * + * * @param date * 日期 * @return 返回年份 @@ -137,7 +138,7 @@ } /** * 返回月份 - * + * * @param date * 日期 * @return 返回月份 @@ -149,14 +150,14 @@ c.setTime(date); return c.get(Calendar.MONTH) + 1; } catch (Exception e) { - + } return 0; } /** * 日期转字符串 - * + * * @param date * @param format * @return @@ -172,7 +173,7 @@ /** * 字符串转日期 - * + * * @param dateStr * @param format * @return @@ -183,7 +184,7 @@ try { return fmt.parse(dateStr); } catch (ParseException e) { - + } return null; } @@ -199,7 +200,7 @@ /** * 判断给定的日期是一周中的第几天,注意:按照中国的习惯,周日是第七天 - * + * * @param date * @return */ @@ -225,7 +226,7 @@ /** * 指定时间的下一天 - * + * * @param date * @return */ @@ -241,7 +242,7 @@ cal.add(Calendar.DATE, 1); return cal.getTime(); } catch (Exception e) { - + } return null; @@ -249,7 +250,7 @@ /** * 指定时间的前一天 - * + * * @param date * @return */ @@ -265,7 +266,7 @@ cal.add(Calendar.DATE, -1); return cal.getTime(); } catch (Exception e) { - + } return null; @@ -273,7 +274,7 @@ /** * 指定时间的下N天 - * + * * @param date * @return */ @@ -289,7 +290,7 @@ cal.add(Calendar.DATE, nDay); return cal.getTime(); } catch (Exception e) { - + } return null; @@ -297,7 +298,7 @@ /** * 指定时间的前N天 - * + * * @param date * @return */ @@ -313,7 +314,7 @@ cal.add(Calendar.DATE, -nDay); return cal.getTime(); } catch (Exception e) { - + } return null; @@ -321,7 +322,7 @@ /** * 获取一天的起始时间 - * + * * @param date * @return */ @@ -338,7 +339,7 @@ try { return fmt.parse(dateStr); } catch (ParseException e) { - + } return date; @@ -346,7 +347,7 @@ /** * 获取一天的结束时间 - * + * * @param date * @return */ @@ -363,7 +364,7 @@ try { return fmt.parse(dateStr); } catch (ParseException e) { - + } return date; @@ -371,7 +372,7 @@ /** * currentDat是否在referenceDate日期之前 - * + * * @param referenceDate * @param currentDat * @return @@ -389,7 +390,7 @@ /** * currentDat是否在referenceDate日期之后 - * + * * @param referenceDate * @param currentDat * @return @@ -436,7 +437,7 @@ } /** * 判断currentDate是否在startDate和endDate之间,不包括startDate和endDate - * + * * @param startDate * @param endDate * @param currentDate @@ -454,11 +455,11 @@ return false; } - + /** * 获取startDate到endDate之间的星期day(中文星期)不包括startDate和endDate - * + * * @param startDate * @param endDate * @param day @@ -483,11 +484,11 @@ return listDate; } - + /** * date转换成Timestamp - * + * * @param date * @param format * @return @@ -507,7 +508,7 @@ /** * 获取早中晚 - * + * * @param time * @return */ @@ -530,7 +531,7 @@ /** * 获取早中晚的开始时间 - * + * * @param date * @param time * @return @@ -554,7 +555,7 @@ /** * 获取早中晚的结束时间 - * + * * @param date * @param time * @return @@ -578,7 +579,7 @@ /** * 得到几天前的时间 - * + * * @param d * @param day * @return @@ -592,7 +593,7 @@ /** * 得到几天后的时间 - * + * * @param d * @param day * @return @@ -606,7 +607,7 @@ /** * 将日期类型格式化成字符串 - * + * * @param date * @return 格式化后日期字符串 * @throws ParseException @@ -622,7 +623,7 @@ /** * 获取时间戳 - * + * * @return */ public static String getTimeMark() { @@ -694,4 +695,70 @@ } return um; } + + /** + * 根据单位计算目标日期 + * + * @param num 距离 + * @param unit 日期单位 Y/M/D + * @return + */ + public static Date calDate(Integer num, String unit) { + Calendar calendar = Calendar.getInstance(); + Date targetDate = null; + switch (unit) { + case "Y": + calendar.add(Calendar.YEAR, num); + targetDate = calendar.getTime(); + break; + case "M": + calendar.add(Calendar.MONTH, num); + targetDate = calendar.getTime(); + break; + case "D": + calendar.add(Calendar.DAY_OF_MONTH, num); + targetDate = calendar.getTime(); + break; + default: + targetDate = stringToDate("9999-12-31", DATE_FORMAT_DD); + + } + + return targetDate; + } + + public static String getAgeForBirthDay(Date birthDay) { + Calendar cal = Calendar.getInstance(); + if (birthDay == null) { + return "-"; + } + // 出生日期晚于当前时间,无法计算 + if (cal.before(birthDay)) { + return "-"; + } + // 当前年份 + int yearNow = cal.get(Calendar.YEAR); + // 当前月份 + int monthNow = cal.get(Calendar.MONTH); + // 当前日期 + int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH); + cal.setTime(birthDay); + int yearBirth = cal.get(Calendar.YEAR); + int monthBirth = cal.get(Calendar.MONTH); + int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH); + // 计算整岁数 + Integer age = yearNow - yearBirth; + if (monthNow <= monthBirth) { + if (monthNow == monthBirth) { + if (dayOfMonthNow < dayOfMonthBirth) { + // 当前日期在生日之前,年龄减一 + age--; + } + } else { + age--; + } + } + + return age.toString(); + } } -- Gitblit v1.9.1