获取两个日期间的所有月份

获取两个日期间的所有月份

public void getMonthOfYear() throws ParseException {
    	
    	String dateString1 = "2019-01";//开始日期,格式要根据getInitMonthMapWithZero2方法中的日期转换格式匹配上
    	String dateString2 = "2020-09";//结束日期
    	
    	List<String> list = new ArrayList<String>();
    	
    	List<String> initMonthMapWithZero2 = getInitMonthMapWithZero2(list,dateString1,dateString2);
    	for (String string : initMonthMapWithZero2) {
			System.out.println(string);
		}
    	
    }
public List<String> getInitMonthMapWithZero2(List<String> myList,String beginTime,String endTime) throws ParseException {
    	List<String> list = myList;
    	
    	DateFormat dateFormat = new SimpleDateFormat("yyyy-MM");
    	Date endDate = dateFormat.parse(endTime);
    	
    	if(!myList.contains(beginTime)) {
    		Calendar c = Calendar.getInstance();
    		c.setTime(endDate);
    		for(int i = 0; i < 12; i ++){
    			int k = c.get(Calendar.YEAR);
    			int j = c.get(Calendar.MONTH) + 1 - i;
    			String date = "";
    			if(j >= 1){
    				date = k + "-" + (j >= 10 ? "" : "0") + j;
    			}else {
    				int p = 11 - i;//剩余循环次数
    				int m = c.get(Calendar.YEAR) - 1;
    				int n = c.get(Calendar.MONTH) + 2 + p;
    				date = m + "-" + (n >= 10 ? "" : "0") + n;
    			}
    			
    			if(list.contains(endTime)&&endTime.equals(date)) {
    				continue;
    			}else {
    				list.add(date);
    			}
    			if(date.equals(beginTime)) {
    				return list;
    			}
    		}
    		
    		getInitMonthMapWithZero2(list,beginTime,list.get(list.size()-1));
    		
    	}

得到结果:
2020-09
2020-08
2020-07
2020-06
2020-05
2020-04
2020-03
2020-02
2020-01
2019-12
2019-11
2019-10
2019-09
2019-08
2019-07
2019-06
2019-05
2019-04
2019-03
2019-02
2019-01

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值