时间管理中的算法整理----------------------------------刷卡数据注意事项:1、正常的考勤档案不建议删除,如果某员工调走或者不再需要考勤,只要利用修改考勤档案将该员工进行停止考勤操作即可,删除考勤的操作只应用于删除由于误操作而添加到考勤档案中的员工。2、原先参加考勤的员工,停止考勤后又恢复考勤,所以这个员工会存在两条或两条以上的的考勤记录。但是只有一条记录为当前记录。3、机器考勤修改为手工考勤,手工考勤调整为机器考勤,或修改为不考勤。处理方式为结束原考勤档案,新增一条档案记录为新的考勤方式。若在考勤期间中修改考勤方式,则该期间考勤方式采用新考勤方式,此种情况有可能会影响员工考勤数据。4、而在临时卡管理中,同一卡号可以对应多名员工,但是这些员工的有效期不可重叠。有签到、签退标记的系统刷卡数据上班时间点的确定原则:1寻找第一个上班时间点:从考勤开始时间向后寻找,直到第一个需要刷卡的上班时间,找到的第一个签到记录为上班时间点;2如果未找到,则从第一个需要刷卡的上班时间继续向后寻找,到下一个需要刷卡的下班时间,找到的第一个签到记录为上班时间点;如果仍然未找到,则认为该作息时间段上班未刷卡。3寻找其他上班时间点:从需要刷卡的上班时间(非第一作息时间段)向前寻找,直到上一个下班时间点(下班时间点晚于下班时间,即正常出勤)或上一个需要刷卡的下班时间(上一个需要刷卡的下班时间未刷卡或下班时间点早于下班时间,即早退),找到的第一个签到记录为上班时间点;4如果未找到,则从上班时间向后寻找,到下一个需要刷卡的下班时间,找到的第一个签到时间为上班时间点;如果仍然未找到,则认为上班未刷卡下班时间点的确定原则:略没有签到、签退标记的系统刷卡数据采用考勤段的方式,考勤段的分段原则如下:在考勤开始时间与考勤结束时间之间设立段间隔点,将整个班别的考勤时间分段,间隔点为需要刷卡的下班时间和与之相邻的下一个需要刷卡的上班时间的中间点,首段的开时时间为考勤开时时间,尾段的结束时间为考勤结束时间,间隔点同时作为上一考勤段的结束时间和下一时间段的开始时间。考勤段中间点,考勤段中需要刷卡的上班时间与下班时间之间的中间点。步骤一:查找段内有几条刷卡记录。1无记录时:标记为上下班均未刷卡;2只有一条记录时:如果该记录在考勤段中间点之前则判定该刷卡记录为上班时间点,并且下班未刷卡;如果该记录在考勤段中间点之后则判定该刷卡记录为下班时间点并且上班未刷卡。3存在多条记录时:找上班点,从需要刷卡的上班时间向前寻找到段开始时间,第一条记录为上班时间点;如果未找到则从上班时间向后寻找到考勤段中间点,找到的第一条记录为上班时间点;如果未找到则认为上班未刷卡。找下班点,从需要刷卡的下班时间向后寻找到段结束时间,第一条记录为下班时间点;如果未找到则从下班时间向前寻找到考勤段中间点(正常出勤或上班未刷卡时)或上班时间点(上班迟到时),找到的第一条未被使用的记录(即未被标识为上班时间点的刷卡记录)为下班时间点;如果未找到则认为下班未刷卡。步骤二:针对在步骤一中判定为未刷卡的上下班时间进行二次匹配。匹配上班未打卡的情况,如果当前考勤段不是第一考勤时间段并且前一个考勤段存在下班时间点,则从前一个考勤段的结束时间向前寻找到前一个考勤段的下班时间点,找到的第一条未被使用的刷卡记录(即未被标识为下班时间点的刷卡记录)为上班时间点;匹配下班未打卡的情况,如果当前考勤段不是最后考勤时间段并且后一个考勤段存在上班时间点,则从后一个考勤段的开始时间向后寻找到后一个考勤段的上班时间点,找到的第一条未被使用的刷卡记录(即未被标识为上班时间点的刷卡记录)为下班时间点注意点:如果在班别设置了“允许迟到时限10分钟”和“最长迟到时限30分钟”,需要刷卡的上班时间从8:00开始,则临界值:8:10为“正常”,临界值:8:30为“迟到”。