上班时间为08:30
下班时间为17:30
午休时间为12:30-13:30
当我请假时间为2006-10-25 09:45  到 2006-10-27 08:45时间差为47个小时。
但是除去午休时间和下班后的时间,实际请假时间为1天7个小时。通过什么算法可以实现这种请假的时间呢。即实际请假时间为1天7个小时。当然,请假也可以是XXXX年XX月XX日XX小时XX分钟的任意数。

解决方案 »

  1.   

    比较麻烦啊。
    说说思路先。
    1、拿到或设定上班时间4个时间点及3个时间段:上午时间、下午时间、一天时间(上午+下午)
    2、判断开始时间是否小于结束时间
    3、拿到2个时间点:第一天的24点、最后一天的0点,后者-前者(如果同一天内会是负数)×一天的上班时间
    4、计算第一天的时间(开始时间-上班时间(上午或下午))
    5、计算最后一天的时间(下班时间-结束时间(上午或下午))
    6、第3步得到的数+第4步得到的数+第5步得到的数,如果为负数,取绝对值lz或有时间的朋友试试
      

  2.   

    请假一般而言,最小单位是半天吧所以你请假的时间就是一天事/病假 + 一次迟到:P