From ed55b07e0000d99d0aeb796649077d178256fbb8 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Sat, 09 Jan 2021 17:17:08 +0800
Subject: [PATCH] modify
---
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