作为我正在研究的计划的一部分,我需要一些建议。
问题:我收到一份包含员工时钟记录的报告。我需要根据换档设置确定当天的第一个时钟IN。例如,Shift A从上午8:00开始,到下午17:00结束。这是向前发展的,但是如果这个人加班到第二天早上凌晨1点,然后在7点30分,在7点45分在7点48分,在7点48分再次进入IN,会发生什么。如何确定当天的第一个时钟?
如果这个人正常工作,我会计算得很好,但是如果加班延续到第二天会发生什么?
答案 0 :(得分:0)
通常,考勤时间应根据特定员工的时间IN加上他在工作时间上花费的时间以及OUT时间来衡量。像这样的东西(只是一个伪代码)
employee_checks_in_event = in_time (a timer is started at this point)
fixed_out_time = expected_out_time (this is the normal out time of employee)
if employee_checks_in_again:
in_time = new_in_time # here the employee may have overlapped next shift IN time due to overtime
employee_checks_out_event = out_time - in_time (lets call it time_spent)
if time_spent < fixed_out_time:
employee_left_early
else:
we know employee completed his time and maybe he over-timed as well.
time_spent = over_time
现在您拥有了员工的time_spent,您可以跟踪第二天的登记入住时间并确保它们不重叠。请记住,您必须在某种程度上区分IN和OUT时间。
另一种方法是将check-IN和check-OUT保存在一个完全独立的时钟中,这样就可以非常容易地确定IN和OUT时间,并且维持加班时间会更容易。