java中求两个日期之间的天数

收藏一个常用的代码段,那就是java中求两个日期间的天数,常见于日历中的两个
日期(yyyy-mm-dd)格式,要求它们之间的相差的天数,例子如下:

  Calendar startCalendar = Calendar.getInstance();
//dstar为yyyy-MM-dd格式的字符串
	startCalendar.setTime((new SimpleDateFormat("yyyy-MM-dd")).parse(dstar));
			
       Calendar endCalendar = Calendar.getInstance();
			
       endCalendar.setTime((new SimpleDateFormat("yyyy-MM-dd")).parse(dend));
			
  int days=new BigDecimal(getDaysBetween(startCalendar, endCalendar)));


其中getDaysBetween方法为:
public int getDaysBetween(Calendar d1, Calendar d2) {
		if (d1.after(d2)) {
			java.util.Calendar swap = d1;
			d1 = d2;
			d2 = swap;
		}
		int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);
		int y2 = d2.get(Calendar.YEAR);
		if (d1.get(Calendar.YEAR) != y2) {
			d1 = (Calendar) d1.clone();
			do {
				days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);// 得到当年的实际天数
				d1.add(Calendar.YEAR, 1);

			} while (d1.get(Calendar.YEAR) != y2);
		}
		return days;
	}

你可能感兴趣的:(java)