根据时间区间,拆分成年月日集合

传来时间范围,返回年月日集合

记录一下开发中碰到的需求
比如输入一个时间范围: 2020-01-01~2021-12-31

 /**
     * 传来时间范围,返回年月日
     * @param beginTime 开始时间
     * @param endTime  结束时间
     * @return
     * @throws Exception
     */
    private  List<String> timeProcessing(String beginTime,String endTime)throws Exception{
        SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
        List<String> timeList = new ArrayList<>();
        //传入日期
        Calendar begin = Calendar.getInstance();//开始时间
        begin.setTime(sf.parse(beginTime));//设置时间
        int beginyear = begin.get(Calendar.YEAR);//获取年份
        int beginmonth=begin.get(Calendar.MONTH)+1;//获取月份
        int beginday = begin.get(Calendar.DATE);//获取天
        Calendar end = Calendar.getInstance();//结束时间
        end.setTime(sf.parse(endTime));//设置时间
        int endyear = end.get(Calendar.YEAR);//获取年份
        int endmonth=end.get(Calendar.MONTH)+1;//获取月份
        int endday = end.get(Calendar.DATE);//获取天
        int differenceMonth = endyear *  12  + endmonth  -  (beginyear  *  12  +  beginmonth);
        //月份累加判断是否大于结束时间
        while(differenceMonth >0 ){
            String month = "";
            if(beginmonth > 12){
                beginyear +=1;
                beginmonth = 1;
            }
            if(beginmonth < 10){
                month = "0"+beginmonth;
            }else{
                month = beginmonth+"";
            }
            String time = beginyear+"-"+month+"-0"+beginday;
            begin.add(Calendar.MONTH,1);
            beginmonth++;
            differenceMonth --;
            timeList.add(time);
        }
        String m = "";
        if(endmonth < 10){
            m = "0"+endmonth;
        }else{
            m = endmonth+"";
        }
        String entTime =  endyear+"-"+m+"-"+endday;
        timeList.add(entTime);
        return timeList;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值