求一考勤班次算法,望高手赐教
我定义了如下3个班次
A01
包括两个时间段,
上班 下班
1、08:30 - 12:00
2、13:00 - 17:30
A02
也包括两个时间段,
上班 下班
1、当天21:30 - 当天23:30
2、第二天00:30 - 第二天08:30
A03
包括一个时间段
上班 下班
00:00-08:30
这个员工可能上这三个班次的其中一个,怎么根据打卡信息分析出他上哪个班次啊
打卡信息是这样的,(有忘记刷卡的可能)
工号 日期 时间
001 2007-1-1 12:02:00
001 2007-1-1 12:31:51
001 2007-1-1 17:35:11
望高手给个比较好的算法,不胜感激,多谢
[解决办法]
试验试验定义一个隐藏的字段根据内容在刷卡的时候赋值,在根据它判断班次
不求分,只求活跃我的思想,也许答非所问,不好意思
[解决办法]
忘记刷卡了,怎么会知道他上哪个班次啊??????
他要是提前打,怎么办啊,是不是上下办都打啊.
[解决办法]
忘记刷卡 要定考勤常
打卡者,填表
[解决办法]
a01于a02的区间没有重叠,这种情况只要计算打卡的第一个时间与最后一个时间的区间就可以知道班次(漏刷也可以,只刷一次无意义)
对于a02与a03,有部分时间区间重叠,打卡又可能漏刷,这样精确判断是不可能的,只能将相邻的两个打卡时间分为一组,逐个判断是与哪个班次的上班区间发生交叉,最后取交集,为可能所属的班次
[解决办法]
up
[解决办法]
To LEOHuang:上班中间休息吃饭打卡时间迟到或者提前的算不算?
假如我上的是AO1班次:
A01
包括两个时间段,
上班 下班
1、08:30 - 12:00
2、13:00 - 17:30
中午是要求13:00打卡的,但我13:30分打卡的话,该怎么算?要另外做处理吗?
还有,我们可以这样处理:
分组统计每个人的每天打卡时间,找出最大值和最小值,然后根据最大值和最小值和每个班次的上班时间和下班时间做比较(中间休息时间不管),这样不知是否可行?
比如工号001的打卡信息:
工号 日期 时间
001 2007-1-1 08:00:00
001 2007-1-1 12:02:00
001 2007-1-1 12:31:51
001 2007-1-1 17:35:11
我们就可以提取打卡时间最小值(08:00:00)和最大值(17:35:11)来判断他是上A01班次的
[解决办法]
考勤
mark
[解决办法]
mark
[解决办法]
没时间仔细看:
但提示你先考虑正常打卡算法
再考虑漏打,由于你2,3时间段重合你漏卡那很多情况,可能要程序检测出异常后人工修复!
[解决办法]
多年前就搞过自动考勤系统,一直认为这是个大难题,个人比较认同kason_j(伊松)的说法,对考勤记录不成双成对出现的列为异常,人工判别或加输补打卡模块(类似平常的补卡让领导签字)
[解决办法]
对考勤记录不成双成对出现的列为异常,你可以设置相应的规则,就是出现此异常时,你的班次可以用默认的一个,那样就好计算出勤情况
[解决办法]
帮你顶呀!
[解决办法]
UP
有点意思!
[解决办法]
先分析算法,给出可能所有正常情况和异常情况
[解决办法]
其实还有一种更复杂的情况,上夜班的情况,打卡时间是跨天的。比如:20:00 - 08:00
[解决办法]
一直在想这个问题
希望高手指点
[解决办法]
搞不懂什要“根据打卡信息分析出他上哪个班次啊”?有什意?你只是了考人吧?如果某人便打卡(比如三班都打卡)呢?是不可能分析出的,你呢?
------解决方案--------------------
应该由班次来判断时间吧,反着判断……
[解决办法]
为什么不反过来考虑,每个员工都应该有自己确定的班次(班次可以另外有调整模块),对他而言必须有相应班次时间内的打卡记录,没有就算他个人异常,然后将异常汇总报表
[解决办法]
A01和A02时间没有重叠这个好说...
但是A03和A02有重叠,或者说A03是A02的子集了,那如果出现一个时间05:30,那你说他的班次是什么,A02还是A03?
这不是算法不算法的问题...
[解决办法]
根据上班时间划分打卡区间,能得出一个比较精确的班次,但不是绝对准确的
[解决办法]
我觉得记录的打卡信息不足,缺少上下班标识,正常情况下的打卡机都会提供是上班还是下班的选择,你的打卡信息怎么会缺少这么重要的东西??
[解决办法]
楼上太偏激
那个人每个班次都打卡对他有什么好处?
现在我们是按正常的逻辑来分析班次,分析不出来就是未知班次行了,那人胡乱打卡到时候分析不出来,管理部门还不找他的事
兄弟,很正常的事,如果真是了考勤,你方案可能不行的。是定某人於那班次再在班次范定他打的卡是否有效。考勤要注意的有:1.如果在他打卡是什原因(可能是假,待工,放假,休息,工等).2.跨天的(上始刷卡到上班束刷卡、上班到下班都可能跨天如23.58始上班刷卡,05分束上班刷卡等等)3.假,要注意一天多次假的情(假如是8上班某人假是7:50到9:00,之後他又在9:30到11:00,之後正常上班),如果要分不同的假工不同就更了,比如假是工50%,那假80%等。4.假、休等.5.通宵(上班十,十小).6.夜班.7.待工.8.卡.9.不同的人算方式不同。10.免刷卡人假。11.加班加班加班型等等.就多吧。
[解决办法]
不支持打卡 ~
[解决办法]
伤脑筋.ding
[解决办法]
关心,关注