/** * 获取两个日期之间相差的天数,d2-d1 * @param d1 * @param d2 * @return */ public static int getDayBetweenDate(Date d1, Date d2) { Calendar c1 = Calendar.getInstance(); c1.setTime(d1); Calendar c2 = Calendar.getInstance(); c2.setTime(d2); int dayofyear1 = c1.get(Calendar.DAY_OF_YEAR); int dayofyear2 = c2.get(Calendar.DAY_OF_YEAR); int result = dayofyear2 - dayofyear1; while(c1.get(Calendar.YEAR) != c2.get(Calendar.YEAR)){ int y = c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR); int maxDay = c1.getMaximum(Calendar.DAY_OF_YEAR); System.out.println(c1.get(Calendar.YEAR)+":"+maxDay); if(y > 0){ result += maxDay; c1.add(Calendar.YEAR, 1); }else{ result -= maxDay; c1.add(Calendar.YEAR, -1); } } return result; }