java中如何用calendar类计算2个时间中间差多少天

来源:百度知道 编辑:UC知道 时间:2024/06/24 08:54:39
我需要统计2个时间段员工旷工次数,但是不知道如何才能算出来
比如:2008-5-5到2009-2-2号
计算中间差了多少天,但是还要去掉里面的星期天(因为星期天不上班),请问有高手能指点下这么写这个方法么?

Calendar类计算两个日期的差,需要转化成毫秒计算,然后再转化成天 

例:

import java.util.Calendar;

public class Test{
public static void main(String[] args){
Calendar a = Calendar.getInstance(),
  b = Calendar.getInstance();
a.set(2015, Calendar.MARCH, 31);
b.set(2015, Calendar.APRIL, 1);
long diffDays = (b.getTimeInMillis() - a.getTimeInMillis()) / (1000 * 60 * 60 * 24);
System.out.println(diffDays);
}
}

只要利用Calendar的add()方法让前者日期的天数无限循环递增 一直递增到后者日期循环结束 然后把循环次数记录下来 循环次数就是两者日期相隔的天数(因为循环到日期相同的时候循环次数任然递增了1天 所以相隔天数必须减1)

public static long daysBetween(Date d1, Date d2) {
if ( (d1 == null) || (d2 == null)) {
return 0;
}
long ld1 = d1.getTime();
long ld2 = d2.getTime();

long days = (long) ( (ld2