请教高手一个算法
我在做一个考勤系统,目的是为了统计每日的员工出勤状况,比如员工A:正常上班多少小时,请假多少小时,加班多少小时。我们公司有个特殊的考勤项目,借调
意思是在注册在A部门的员工,因为工作需要,要借到B部门去
这个时候该员工的出勤时间要算到B部门去
如果A部门有5个人,B部门有4个人,在5/20这一天,没有加班没有请假,那这天B部门的出勤时间应该是4*8=32小时,A部门的出勤时间应该是5*8=40小时
假如5/21, 从A部门借了一个人去B部门,该员工上班8小时,没有加班没有请假
则B部门的出勤时间应该是32+8=40小时(正常上班:32小时,借入时间:8小时)
而A部门的出勤时间应该是40-8=32小时(正常上班:32小时,借出时间:8小时)
需要注意的是,借调可以是几个小时,也可以是几天,甚至几个月,开始时间是知道的,结束时间是未知的,等到实际发生才能知道
以上是借调情况下,各部门的员工出勤时间统计,下面说下我的问题。
我在数据库里建了一个表,当发生借调事件时,记录开始时间,员工信息,从哪个部门借到哪个部门
等到借调结束后,再在这个表中记录结束时间等。
问题是,我该怎么统计某一天这个部门的借调时间呢?
通常情况下,我是在当日要算出上一个工作日的出勤时间,比如今天5/21,我需要算出5/20的时间。
写出以下几种情况,给大家帮忙分析
假设今天是5/21,需要统计5/20的出勤时间
1、员工甲,在5/20从A部门借调到B部门4个小时
2、员工甲,在5/19从A部门借调到B部门,5/21还未回原部门
3、员工甲,5/20在原部门A正常上班了8个小时后,加班借调到B部门2个小时
不好意思,写的比较长,望高手能给我点思路,不胜感激!