prader6

返回两个时间段内的季度

参考文章:https://www.cnblogs.com/caoyingjielxq/p/9426972.html

复制代码
public static Date parse(String string, String  patern){
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(patern);
        try {
            Date parse = simpleDateFormat.parse(string);
            return parse;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
 
    
/**
* 返回两个时间段内,季度的字符串
* @param minDate
* @param maxDate
* @return
*/
     public static List<String> getMonthBetweenDates(String minDate, String maxDate){
        ArrayList<String> result = new ArrayList<String>();
        //HashSet<String> strings = new HashSet<>();
        HashMap<String, Integer> map = new HashMap<>();

        Calendar min = Calendar.getInstance();
        Calendar max = Calendar.getInstance();
        min.setTime(parse(minDate,"yyyy-MM-dd"));
        min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1);
        max.setTime(parse(maxDate,"yyyy-MM-dd"));
        max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2);

        Calendar curr = min;
        int i = 1;
        while (curr.before(max)) {
            //result.add(format(curr.getTime(),"yyyy-MM-dd"));
            String season1 = getSeason1(curr.getTime());
            map.put(season1, i);
            curr.add(Calendar.MONTH, 1);
            i++;
        }
        ArrayList<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet());
        Collections.sort(entries, new Comparator<Map.Entry<String, Integer>>() {
            @Override
            public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
                return o1.getValue().compareTo(o2.getValue());
            }
        });
        for (Map.Entry<String, Integer> entry : entries){
            result.add(entry.getKey());
        }
        return result;
    }

    /**
     *
     * 1 第一季度 2 第二季度 3 第三季度 4 第四季度
     *
     * @param date
     * @return
     */
    public static String getSeason1(Date date) {
        int season = 0;
        String seasonString = "";
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        int month = c.get(Calendar.MONTH);
        int year = c.get(Calendar.YEAR);
        switch (month) {
            case Calendar.JANUARY:
            case Calendar.FEBRUARY:
            case Calendar.MARCH:
                season = 1;
                seasonString = year + "年第一季度";
                break;
            case Calendar.APRIL:
            case Calendar.MAY:
            case Calendar.JUNE:
                season = 2;
                seasonString = year + "年第二季度";
                break;
            case Calendar.JULY:
            case Calendar.AUGUST:
            case Calendar.SEPTEMBER:
                season = 3;
                seasonString = year + "年第三季度";
                break;
            case Calendar.OCTOBER:
            case Calendar.NOVEMBER:
            case Calendar.DECEMBER:
                season = 4;
                seasonString = year + "年第四季度";
                break;
            default:
                break;
        }
        return seasonString;
    }
复制代码

 

------------恢复内容结束------------

posted on   prader6  阅读(253)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)

导航

统计

点击右上角即可分享
微信分享提示