获取两个日期之间的所有日期

1.不包含起止日期:

public static List<String> getMonthBetweenDateStr(String minDate, String maxDate) throws ParseException{
		List<String> listDate = new ArrayList<String>();
		Calendar startCalendar = Calendar.getInstance();
		Calendar endCalendar = Calendar.getInstance();
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
		Date startDate = df.parse(minDate);
		startCalendar.setTime(startDate);
		Date endDate = df.parse(maxDate);
		endCalendar.setTime(endDate);
		while(true){
			startCalendar.add(Calendar.DAY_OF_MONTH, 1);
			if(startCalendar.getTimeInMillis() < endCalendar.getTimeInMillis()){
				listDate.add(df.format(startCalendar.getTime()));
			}else{
				break;
			}
		}
		return listDate;
	}

2.包含起止日期:

public static List<Date> getMonthBetweenDate(Date beginDate, Date endDate) {
		if(beginDate.getTime() == endDate.getTime()){
			return null;
		}
	    List lDate = new ArrayList();
	    lDate.add(beginDate);//把开始时间加入集合
	    Calendar cal = Calendar.getInstance();
	    //使用给定的 Date 设置此 Calendar 的时间
	    cal.setTime(beginDate);
	    boolean bContinue = true;
	    while (bContinue) {
	        //根据日历的规则,为给定的日历字段添加或减去指定的时间量
	        cal.add(Calendar.DAY_OF_MONTH, 1);
	        // 测试此日期是否在指定日期之后
	        if (endDate.after(cal.getTime())) {
	            lDate.add(cal.getTime());
	        } else {
	            break;
	        }
	    }
	    lDate.add(endDate);//把结束时间加入集合
	    return lDate;
	}


发布了87 篇原创文章 · 获赞 22 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/gaofenglxx/article/details/60140032