计算员工在职时长

在只需要年份的情况下:

//参数:起止时间

public int getCareerage(Date startDate, Date endDate) {

Calendar calStart = Calendar.getInstance();

calStart.setTime(DateUtil.getBeginOfDay(startDate));    //获取一天的开始 (00:00:00)

Calendar calEnd = Calendar.getInstance();

calEnd.setTime(DateUtil.getBeginOfDay(endDate));

int Year = 0;

calStart.add(Calendar.YEAR, 1);

while (calStart.getTimeInMillis() <= calEnd.getTimeInMillis()) {

Year++;

calStart.add(Calendar.YEAR, 1);

if (Year > 10000) {

break;

}

return Year;

}

在需要xx年xx天的情况下

public String getCareerage(Date startDate, Date endDate) {

Calendar calStart = Calendar.getInstance();

calStart.setTime(DateUtil.getBeginOfDay(startDate));

Calendar calEnd = Calendar.getInstance();

calEnd.setTime(DateUtil.getBeginOfDay(endDate));

int Year = 0;

calStart.add(Calendar.YEAR, 1);

while (calStart.getTimeInMillis() <= calEnd.getTimeInMillis()) {

Year++;

calStart.add(Calendar.YEAR, 1);

if (Year > 10000) {

break;

}

}

calStart.setTime(DateUtil.getBeginOfDay(startDate));

calStart.add(Calendar.YEAR, Year);

calStart.add(Calendar.DATE, -1);

Long day = (calEnd.getTime().getTime() - calStart.getTime().getTime()) / (1000 * 3600 * 24);

System.out.println("year:"+Year +"----"+"day:"+day);

if(Year!=0 && day!=0){

return Year + "年" + day + "天";

}

else if(Year==0 && day!=0){

return day + "天";

}else if(Year!=0 && day==0){

return Year+"周年";

}else if(Year==0 && day ==0){

return "0天";

}

return null;

}


DateUtil.getBeginOfDay  方法

public static Date getBeginOfDay(Date date) {

Calendar cal = Calendar.getInstance();

try {

cal.setTime(date);

cal.set(Calendar.HOUR_OF_DAY, 0);

cal.set(Calendar.MINUTE, 0);

cal.set(Calendar.SECOND, 0);

cal.set(Calendar.MILLISECOND, 0);

return cal.getTime();

} catch (Exception e) {

return null;

}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值