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

我需要统计2个时间段员工旷工次数,但是不知道如何才能算出来比如:2008-5-5到2009-2-2号计算中间差了多少天,但是还要去掉里面的星期天(因为星期天不上班),请问... 我需要统计2个时间段员工旷工次数,但是不知道如何才能算出来
比如:2008-5-5到2009-2-2号
计算中间差了多少天,但是还要去掉里面的星期天(因为星期天不上班),请问有高手能指点下这么写这个方法么?
展开
 我来答
laobaitu0322
推荐于2016-08-15 · TA获得超过744个赞
知道小有建树答主
回答量:900
采纳率:33%
帮助的人:641万
展开全部

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);
}
}
fkhhg
2015-03-31 · TA获得超过466个赞
知道小有建树答主
回答量:418
采纳率:0%
帮助的人:317万
展开全部
只要利用Calendar的add()方法让前者日期的天数无限循环递增 一直递增到后者日期循环结束 然后把循环次数记录下来 循环次数就是两者日期相隔的天数(因为循环到日期相同的时候循环次数任然递增了1天 所以相隔天数必须减1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8d170d4
2019-04-03
知道答主
回答量:1
采纳率:0%
帮助的人:755
展开全部

public class CalendarDemo {

public static void main(String[] args) {
// TODO Auto-generated method stub
int count=0;
Calendar c = Calendar.getInstance();
//起始位2017.4.3日(月份角标是从0开始的)
c.set(2017,3,3);
while(!(c.get(Calendar.YEAR)==2020&&c.get(Calendar.MONTH)==4&&c.get(Calendar.DAY_OF_MONTH)==1)) {
//终止时间是2020.5.1日,每次天数递增1
c.add(Calendar.DAY_OF_MONTH,1);
count++;
}
sop(count);

}
public static void sop(Object obj) {
System.out.println(obj);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
希茜Cqa68
2009-06-07 · TA获得超过1238个赞
知道小有建树答主
回答量:860
采纳率:0%
帮助的人:1071万
展开全部
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 - ld1) / 86400000);
return days;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式