日期:2014-05-18  浏览次数:20582 次

请大家帮个忙,一个关于函数设定的问题,我想了很长时间了,给点帮助。谢谢了,在线等,分少有点拿不出手。但是诚意在
我想做一个算一天工作时间的函数。
要求:有这样4个参数,分别是上班时间,下班时间,   休息时间段开始,休息时间段

              结束。休息时间段是放在一个list里,大家先不用管。
我现在判断出现问题了:假如是8:30上班,24:00之前下班的化没问题。
if(realSTimeDate.compareTo(realETimeDate) <0){
if(realETimeDate.compareTo(standardSTimeDate) <=0){
realHours=0;
}
else   if(realSTimeDate.compareTo(standardSTimeDate) <=0&standardSTimeDate.compareTo(realETimeDate) <=0&realETimeDate.compareTo(standardETimeDate) <=0){
realHours=(int)((realETimeDate.getTime()-standardSTimeDate.getTime())/(1000*60));
}
else   if(realSTimeDate.compareTo(standardSTimeDate) <=0&standardETimeDate.compareTo(realETimeDate) <=0){
realHours=(int)((standardETimeDate.getTime()-standardSTimeDate.getTime())/(1000*60));
}
else   if(standardSTimeDate.compareTo(realSTimeDate) <=0&realSTimeDate.compareTo(standardETimeDate) <=0&standardSTimeDate.compareTo(realETimeDate) <=0&realETimeDate.compareTo(standardETimeDate) <=0){
realHours=(int)((realETimeDate.getTime()-realSTimeDate.getTime())/(1000*60));
}
else   if(standardSTimeDate.compareTo(realSTimeDate) <=0&realSTimeDate.compareTo(standardETimeDate) <=0&standardETimeDate.compareTo(realETimeDate) <=0){
realHours=(int)((standardETimeDate.getTime()-realSTimeDate.getTime())/(1000*60));
}
else   if(standardETimeDate.compareTo(realSTimeDate) <=0){
realHours=0;
}
}
但是要是从8:30一直工作到24:00点之后的话我就不知道怎么判断了。
我现在有一个这样的想法,但是不好。大家帮我看看
假如从8:30工作到03:00(凌晨)我想把这个03:00强制转化成两个时间常量,
24:00点和03:00       请大家帮帮我想想这个方法如何实现。
通过这两个时间段作判断,返回两个值,然后相加就是一天的工作时间。

如果有好的方法,小弟虚心学习。请指点一下。

------解决方案--------------------
呵呵,将8:30当0:00处理,一天工作时间最长为24小时
------解决方案--------------------
3:00-8:30 + 24