|
|
package com.engine.gainway.util;
|
|
|
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.Period;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
|
import java.util.regex.Matcher;
|
|
|
import java.util.regex.Pattern;
|
|
|
|
|
|
/**
|
|
|
* @Author liang.cheng
|
|
|
* @Date 2024/12/12 10:19 AM
|
|
|
* @Description: TODO
|
|
|
* @Version 1.0
|
|
|
*/
|
|
|
public class BasicResourceUtil {
|
|
|
|
|
|
|
|
|
public static int calculateAge(String birthday) {
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
LocalDate birthDate = LocalDate.parse(birthday, formatter);
|
|
|
LocalDate today = LocalDate.now();
|
|
|
|
|
|
int age = Period.between(birthDate, today).getYears();
|
|
|
|
|
|
if (today.getMonthValue() < birthDate.getMonthValue() ||
|
|
|
(today.getMonthValue() == birthDate.getMonthValue() && today.getDayOfMonth() < birthDate.getDayOfMonth())) {
|
|
|
// 如果当前日期还没有到达生日日期,年龄减1
|
|
|
age--;
|
|
|
}
|
|
|
return age;
|
|
|
}
|
|
|
|
|
|
public static Map<String,Integer> rangeExtractor(String name){
|
|
|
|
|
|
Pattern pattern = Pattern.compile("\\d{1,2}");
|
|
|
Matcher matcher = pattern.matcher(name);
|
|
|
int from = 0;
|
|
|
int to = 0;
|
|
|
|
|
|
if (matcher.find()) {
|
|
|
from = Integer.parseInt(matcher.group());
|
|
|
}
|
|
|
if (matcher.find()) {
|
|
|
to = Integer.parseInt(matcher.group());
|
|
|
}
|
|
|
|
|
|
Map<String,Integer> map = new HashMap<>(2);
|
|
|
map.put("from",from);
|
|
|
map.put("to",to);
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
|
|
|
public static String calculateDate(LocalDate today, int number) {
|
|
|
LocalDate birthDate = today.minusYears(number);
|
|
|
return birthDate.toString();
|
|
|
}
|
|
|
|
|
|
public static Map<String,String> selectRangeSet(String name) {
|
|
|
Map<String,String> map = new HashMap<>(2);
|
|
|
//提取范围
|
|
|
Map<String, Integer> extractor = rangeExtractor(name);
|
|
|
|
|
|
int from = extractor.get("from");
|
|
|
int to = extractor.get("to");
|
|
|
LocalDate today = LocalDate.now();
|
|
|
String fromDate = calculateDate(today, to+1);
|
|
|
String toDate = calculateDate(today, from);
|
|
|
map.put("fromDate",fromDate);
|
|
|
map.put("toDate",toDate);
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
public static Map<String,String> companyYearRangeSet(String name) {
|
|
|
Map<String,String> map = new HashMap<>(2);
|
|
|
//提取范围
|
|
|
Map<String, Integer> extractor = rangeExtractor(name);
|
|
|
|
|
|
int from = extractor.get("from");
|
|
|
int to = extractor.get("to");
|
|
|
LocalDate today = LocalDate.now();
|
|
|
String fromDate = calculateDate(today, to);
|
|
|
String toDate = calculateDate(today, from);
|
|
|
map.put("fromDate",fromDate);
|
|
|
map.put("toDate",toDate);
|
|
|
return map;
|
|
|
}
|
|
|
}
|