java设置周末不可选,如何考虑不增加周末而将营业时间添加到Date? -Java

I want to add certain number of hours to date, ignoring the weekends

For example,

(Friday 18:00) + 48 = (Tuseday 18:00) (Saturday and Sunday are ignored)

since the company works 24 hours, business hours are 24. But still i could not get how to add hours only on business days

function can be something like:

public Date getTaskEndTime(Calendar startDate, int hours){

// calculate the end time by adding the hours ignoring the weekends

}

解决方案

Add hours in steps not bigger then 24hours. And check after each step if you end up on a saturday or sunday. In each case add another 24hours. That should do what you want.

public Date getTaskEndTime(Calendar startDate, int hours){

while (hours > 0){

int step = 0;

if(hours > 24) step = 24;

else step = hours;

hours -= step;

startDate.add(Calendar.HOUR_OF_DAY, step);

int dayOfWeek = startDate.get(Calendar.DAY_OF_WEEK);

if(dayOfWeek == Calendar.SATURDAY) hours += 24;

if(dayOfWeek == Calendar.SUNDAY) hours += 24;

}

return startDate.getTime();

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值