Excel公式计算请假时间(小时数),该怎么解决

Excel公式计算请假时间(小时数)
前提:
1:有些人上班时间是8:30到17:30,另外有些人是9:00到18:00
2:中午都是12:00休息到13:00
3:要能计算两个请假时间的差额是几个小时,不算午休时间。
4:目前不考虑周末时间。

我自己写的公式只能计算同一天内的两个时间差,如果从2010-9-1 10:00请假到 2010-9-2 9:00,我的公式就算不出来了。请大侠们帮忙

附上我的公式:其中B1为结束时间 A1为开始时间

=((TEXT(B1,"hh:mm")-TEXT(A1,"hh:mm"))-IF((AND(HOUR(A1)=12,HOUR(B1)=12)),TEXT(B1,"hh:mm")-TEXT(A1,"hh:mm"),IF(AND(HOUR(A1)<12,HOUR(B1)=12),IF(HOUR(A1)=12,"13:00"-TEXT(A1,"hh:mm"),TEXT(B1,"hh:mm")-"12:00"))))

------解决方案--------------------
用函数days360,比较一下这两个日期的天数差异。

VB code

如果日期差1天以上,则    
    (天数差额-1)×每天工时 + 第一天到下班的工时 + 最后一天上班到结束的工时
    
如果日期相同,则    
    同你的处理方法

------解决方案--------------------
没看懂,直接相减不行么
------解决方案--------------------
直接相减之后,就要处理非工作时间的逻辑了。

既然能够把1天内的和相邻天的请假处理好,那么多余这个天数的,处理起来就容易多了呀。
------解决方案--------------------
木懂,帮顶吧