|
@@ -625,4 +625,65 @@ public class CoreUtil {
|
|
|
public static void getDebugStr(String msg, Object error, Map<String, Object> debugMap) {
|
|
|
debugMap.put(msg, error);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 年龄字符串转换成double类型
|
|
|
+ *
|
|
|
+ * @param ageStr
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Double convertAge(String ageStr) {
|
|
|
+ try {
|
|
|
+ if (StringUtil.isEmpty(ageStr)) {
|
|
|
+ return 0.0;
|
|
|
+ }
|
|
|
+ // 全是整形数字,当成年龄处理
|
|
|
+ if (CatalogueUtil.numbersOnly(ageStr)) {
|
|
|
+ return Double.parseDouble(ageStr);
|
|
|
+ }
|
|
|
+ // 20日
|
|
|
+ if (ageStr.endsWith("日")) {
|
|
|
+ return getHalfUp((Double.parseDouble(ageStr.substring(0, ageStr.length() - 1))) / 365);
|
|
|
+ }
|
|
|
+ // 3岁
|
|
|
+ if (ageStr.endsWith("岁")) {
|
|
|
+ return Double.parseDouble(ageStr.substring(0, ageStr.length() - 1));
|
|
|
+ }
|
|
|
+ // 1.08月 | .11月 | 3月
|
|
|
+ if (ageStr.endsWith("月")) {
|
|
|
+ String noUnit = ageStr.substring(0, ageStr.length() - 1);
|
|
|
+ String[] ageArr = new String[2];
|
|
|
+ String[] splitArr = noUnit.split("\\.");
|
|
|
+ if (splitArr.length == 1) {
|
|
|
+ ageArr[0] = splitArr[0];
|
|
|
+ } else if (splitArr.length == 2) {
|
|
|
+ ageArr[0] = splitArr[0];
|
|
|
+ ageArr[1] = splitArr[1];
|
|
|
+ }
|
|
|
+ Double daySum = 0.0D;
|
|
|
+ if (StringUtil.isNotBlank(ageArr[0])) {
|
|
|
+ daySum += Double.parseDouble(ageArr[0]) * 30;
|
|
|
+ }
|
|
|
+ if (StringUtil.isNotBlank(ageArr[1])) {
|
|
|
+ daySum += Double.parseDouble(ageArr[1]);
|
|
|
+ }
|
|
|
+ return getHalfUp(daySum / 365);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ return 0.0;
|
|
|
+ }
|
|
|
+ return 0.0;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 四舍五入保留2位小数
|
|
|
+ *
|
|
|
+ * @param ageStr
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Double getHalfUp(Double ageStr) {
|
|
|
+ BigDecimal bg = new BigDecimal(String.valueOf(ageStr));
|
|
|
+ return bg.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
+ }
|
|
|
}
|