0
我必须显示员工相对于正式营业时间的总工作时间。 如果任务已启动,则输入数据库的开始时间和结束时间。如何获得相对于正式营业时间的时差
输入类似:
start time= `2013-10-18 16:06:16.840`
end time=`2013-10-22 16:09:09.760`
工作时间可配置为每个组织。
工时=7.45 (7 hour and 45 minutes) =1 day
如果有人工作更多然后工时,它考虑下额外的工作,并考虑作为额外的时间。
我需要根据用户工作一天的输出。输出一天如
7.45 hour then 1 days
7.50 hour then 1 days and 5 minute
14.50 hour then 1 days, 7 hour and 5 minutes
我已经完成了下面的编码。这并不像我期望的那样令人满意。
我做了什么:
1) take difference of two days
2) instead of using 24 hour, I used business hour.
代码:
public static long[] getTimeDifference(Date d1,Date d2,int holiday,String businessHour)
{
long hour=0;
if(businessHour.indexOf(".")!=-1)
{
hour=Long.valueOf(businessHour.substring(0,businessHour.indexOf(".")));///check for hour
}
else
{
hour=Long.valueOf(businessHour);
}
long[] time=new long[3];
long diff = d2.getTime() - d1.getTime();
//double diffSeconds = diff/1000 % 60;
long diffMinutes = diff/(60 * 1000) % 60;
long diffHours = (diff/(60 * 60 * 1000) % hour);
long diffDays = (diff/(hour * 60 * 60 * 1000));
diffDays=diffDays-holiday;
time[0]=diffDays;
time[1]=diffHours;
time[2]=diffMinutes;
return time;
}
输出: 11天:05时间:02分钟
我不包括分钟逻辑还,我该如何执行?我不知道。我对此感到困惑。
周末怎么样? –
为什么在工作时间使用'Long'作为数据类型?这样你就会丢失输入字符串的小数部分。 –
如果你只有周五的时间和他今天离开的时间,你无法计算他每天工作多少个小时。 – luanjot