最近积累的一些工具方法(2019-06-12)
程序员文章站
2022-05-26 14:09:13
...
/**
* 获取当前时间往前往后推几天
*
**/
public Map<String,Date> getDate() {
Map<String,Date> map = new HashMap<>(2);
try {
//获取当前日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date today = new Date();
Date endDate = sdf.parse(sdf.format(today));
//获取三十天前日期
Calendar theCa = Calendar.getInstance();
theCa.setTime(today);
//最后一个数字5可改,5天的意思
//data就是往前往后几天的意思,负数是往前,正数是往后
theCa.add(Calendar.DATE, Integer.parseInt(date));
Date start = theCa.getTime();
//三十天之前日期
Date startDate = sdf.parse(sdf.format(start));
map.put("end",endDate);
map.put("start",startDate);
} catch (ParseException e) {
e.printStackTrace();
log.error(e);
}
return map;
}
/**
* @param firstArrayList 第一个ArrayList
* @param secondArrayList 第二个ArrayList
* @return resultList 差集ArrayList
* @方法描述:获取两个ArrayList的差集
*/
public static List<IncomeInvResponse> receiveDefectList(List<IncomeInvResponse> firstArrayList,
List<InvoiceDetailDO> secondArrayList) {
List<IncomeInvResponse> resultList = firstArrayList.stream()
.filter(item -> !secondArrayList.stream().map(e -> e.getInvoiceCode() + "|" + e.getInvoiceNum())
.collect(Collectors.toList()).contains(item.getInvoiceCode() + "|" + item.getInvoiceNr()))
.collect(Collectors.toList());
return resultList;
}
/**
* 计算两个时间相差天数
* @param date1
* @param date2
* @return
*/
public static int differentDaysByMillisecond(Date date1, Date date2) {
int days = (int) ((date2.getTime() - date1.getTime()) / (1000*3600*24));
return days;
}
/**
* 解析字符串中的数字和汉字
* @param str
* @return
*/
public static Map<String,String> getChinaNum(String str) {
Map<String,String> obj = new HashMap<>();
if(StringUtils.isEmpty(str)){
return obj;
}
//获取数字
String a = str.replaceAll("[^0-9-]", "_").replace("_+", "_");
String[] as = a.split("_+");
obj.put("num",replaceNull(as));
//获取汉字
String b = str.replaceAll("[^\\u4e00-\\u9fa5]", "_").replace("_+", "_");
String[] bs = b.split("_+");
obj.put("china",replaceNull(bs));
return obj;
}
/**
* 去除数组中的空串
* @param str
* @return
*/
public static String replaceNull(String[] str){
StringBuffer sb = new StringBuffer();
for(int i=0; i<str.length; i++) {
if("".equals(str[i])) {
continue;
}
sb.append(str[i]);
if(i != str.length - 1) {
sb.append(",");
}
}
return sb.toString();
}
上一篇: Java 高效率 List集合扩展工具类
下一篇: Latex公式