/**
* 计算两个日期之间的天数(不考虑时分秒)
* @author 半知半行
*/
public static int getDaysByTwoDate(Date start,Date end){
int n = 0;
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(start);
c2.setTime(end);
c1.set(Calendar.HOUR_OF_DAY, 0);
c1.set(Calendar.MINUTE, 0);
c1.set(Calendar.SECOND, 0);
c1.set(Calendar.MILLISECOND, 0);
c2.set(Calendar.HOUR_OF_DAY, 0);
c2.set(Calendar.MINUTE, 0);
c2.set(Calendar.SECOND, 0);
c2.set(Calendar.MILLISECOND, 0);
while(c1.before(c2)){
n++;
c1.add(Calendar.DATE, 1);
}
return n;
}
以上算法是不包含时分秒,如果要将时分秒算在内,最好的方法还是取毫秒值,如下面代码
/**
* 计算两个日期之间的天数(考虑时分秒)
* @author 半知半行
*/
public static double getDaysByTwoDate2(Date start,Date end) {
double n = 0;
long t1 = start.getTime();
long t2 = end.getTime();
n = (double)(t2 - t1)/(24 * 60 * 60 * 1000);
return n;
}