遇见一些有点意思的代码,for循环操作返回boolean类型,统计报表的时候,如何配置x轴的每一个维度数据,等等【陆续不断补充中】

 

看到一些有意思的代码

1. for循环的时候,操作每个对象返回boolean类型结果,只要有一个对象操作结果为true,整个方法就返回true,这里用到了‘异或’运算,有意思。

反过来,如果只要有一个对象操作返回false,整个方法就返回false,就可以使用 ‘与’运输了,            result &= c.add(element);  这样写法简单实用。

   public static  boolean addAll(Collection c, T... elements) {
        boolean result = false;
        for (T element : elements)
            result |= c.add(element);
        return result;
    }

2. 这里是在统计的时候,经常出现x轴(横坐标)是每一天,比如12.1日,12.2日,等等,如何组织这个数据出来呢? 试试下来这个 方法,while循环,把每一天都加入到list集合中

参数 outFmt 就是一个dateFormat

  /**
     * 获取两个日期字符串之间的日期集合
     */
    public static List getBetweenDate(SimpleDateFormat outFmt, String startTime, String endTime){
        // 声明保存日期集合
        List list = new ArrayList<>();
        try {
            // 转化成日期类型
            Date startDate = CHN_DATE_FORMAT.parse(startTime);
            Date endDate = CHN_DATE_FORMAT.parse(endTime);

            //用Calendar 进行日期比较判断
            Calendar calendar = Calendar.getInstance();
            while (startDate.getTime() <= endDate.getTime()) {
                // 把日期添加到集合
                if (outFmt == null) {
                    list.add(CHN_DATE_FORMAT.format(startDate));
                } else {
                    list.add(outFmt.format(startDate));
                }
                // 设置日期
                calendar.setTime(startDate);
                //把日期增加一天
                calendar.add(Calendar.DATE, 1);
                // 获取增加后的日期
                startDate = calendar.getTime();
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return list;
    }

你可能感兴趣的:(java)