欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

最近积累的一些工具方法(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();
    }

 

相关标签: 工具方法