做过考勤系统的进来看看

chenhaoying 2011-07-20 09:57:28
规则:用餐时间定义11:30-13:00(1.5小时)、17:00-18:00(1小时);
考勤记录是:2011-07-20 08:30:00~2011-07-20 17:30:00
考勤时间=out时间- in时间-用餐时间

由于上班是弹性上班的,啥时都行,有的时候跨过3次用餐时间都有,像这种情况如何很好的判断跨越用餐时间的并扣除啊?大家给个思路,谢谢。
...全文
214 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
truecoffeefox 2011-07-21
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 newdigitime 的回复:]

你的思路不对。

既然吃饭时间及次数是灵活的,应该如下处理:

第一次考勤-第二次考勤=t1
第三次考勤-第四次考勤=t2
第五次考勤-第六次考勤=t3
.....
然后
t1+t2+t3得到工作时间

当然,还必须作一些规则,来判断考勤的有效性
譬如
8:00打第一次考勤
8:01打第二考勤,显然要判断第二次考勤无效
[/Quote]

确实,多次打卡可以简化汇总的工作,但是实际情况是员工大多非常抵触多次打卡,总会有各种理由忘记打卡,后来没办法我这边做法是又采购了一个rfid门禁通道
wucaijuan 2011-07-21
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 wo_you_xie_shang_xin 的回复:]
引用 12 楼 wo_you_xie_shang_xin 的回复:
HTML code

1.划分两大时间段 a.正常上班时间段8:00-18:30 b.加班时间段(例:18:30-8:00[第二天])

2.分别记录两个时间段内各自时间段内的第一次打卡时间和最后一次打卡时间 wt1,wt2 和et1,et2

3.设午餐ft1=1.5h 晚餐ft2=1h 正常工作时间w 加班时间e……
[/Quote]

我在看呀
aXen 2011-07-21
  • 打赏
  • 举报
回复
lz是来问需求的?哈哈。个人觉得实现不是很困难,关键在于怎么去做判断,画个决策树来辅助你理清思路。

http://zh.wikipedia.org/wiki/%E5%86%B3%E7%AD%96%E6%A0%91#.E5.BB.BA.E7.AB.8B.E6.96.B9.E6.B3.95
jsyhello 2011-07-20
  • 打赏
  • 举报
回复
分段计算
jack0558 2011-07-20
  • 打赏
  • 举报
回复
用餐时间也是弹性的吗
地下室小红叔 2011-07-20
  • 打赏
  • 举报
回复

1.划分两大时间段 a.正常上班时间段8:00-18:30 b.加班时间段(例:18:30-8:00[第二天])

2.分别记录两个时间段内各自时间段内的第一次打卡时间和最后一次打卡时间 wt1,wt2 和et1,et2

3.设午餐ft1=1.5h 晚餐ft2=1h 正常工作时间w 加班时间e

4.若8:00<wt1<=8:30 and 11:30<wt2<=13:00 则 w=(11:30-8:30)-(8:30-wt1)=3-(8:30-wt1)
若8:30<wt1<=11:30 and 11:30<wt2<=13:00 则 w=11:30-wt1
若8:00<wt1<=8:30 and wt2<=11:30 则 w=(wt2-8:30)-(8:30-wt1)
若8:30<wt1<=11:30 and wt2<=11:30 则 w=wt2-wt1

若8:00<wt1<=8:30 and 17:30<wt2<=18:00 则 w=(17:30-8:30)-ft1=9-ft1
若8:30<wt1<11:30 and 17:30<wt2<=18:00 则 w=17:30-wt1-ft1
若8:00<wt1<=8:30 and 13:00<wt2<=17:30 则 w=wt2-wt1-ft1-(8:30-wt1)
若8:30<wt1<11:30 and 13:00<wt2<=17:30 则 w=wt2-wt1-ft1
  同理求8:30<=wt1<11:30,11:30<=wt1<13:00,13:00<=wt1<17:30,13:00<wt2<=17:30,17:30<wt2<=18:00
  的情况……

5.同理求加班的情况

注意两次8:00-8:30和18:00-18:30分是判断正常上班和加班的间隔区间 若正常上班后需要加班 
需要员工两次打卡还需要判断无效的单次打卡情况 总之要根据需求定规则 也少不了人为的干预
truecoffeefox 2011-07-20
  • 打赏
  • 举报
回复
想这么细感觉最好是配合rfid门禁,记录每次进出的时间,在办公室时间汇总得到工作时间,当然要有弹性值,比如休息防水的时间
truecoffeefox 2011-07-20
  • 打赏
  • 举报
回复
这样有些问题的,比如17:00-18:00的用餐时间,既然是弹性工作,我想不用餐凑够了工作时间下班再用餐呢?
并不能剥夺我这种选择吧
你只记录一个in和一个out时间想把他做的这么细化不太可能
子夜__ 2011-07-20
  • 打赏
  • 举报
回复
根据看打卡时间来判断?
Rock870210 2011-07-20
  • 打赏
  • 举报
回复
这东西不能做那么活的,既然是用餐时间,你用不用餐是你的事情,时间是一定扣除的!
系统毕竟只是辅助工具,不是人脑!
cena_jin 2011-07-20
  • 打赏
  • 举报
回复
关注~!!
地下室小红叔 2011-07-20
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 wo_you_xie_shang_xin 的回复:]
HTML code

1.划分两大时间段 a.正常上班时间段8:00-18:30 b.加班时间段(例:18:30-8:00[第二天])

2.分别记录两个时间段内各自时间段内的第一次打卡时间和最后一次打卡时间 wt1,wt2 和et1,et2

3.设午餐ft1=1.5h 晚餐ft2=1h 正常工作时间w 加班时间e

4.若8:00<wt1<=8:30 and 11:30<wt2<=13:00 则 w=(11:30-8:30)-(8:30-wt1)=3-(8:30-wt1)

[/Quote]

貌似没人看我的东东唉 这里第4条第一行就有问题 就应该是3 不用再减那个差值

chenhaoying 2011-07-20
  • 打赏
  • 举报
回复
弹性上班是没有早退,迟到的,只要月工作总量达要求就行。
由于很自由,所以不好计算用餐时间,像2011-07-20 08:30:00~2011-07-20 17:30:00这个的用餐时间不是-1.5,也不是-2.5,而是2小时的。
Ayanamikula 2011-07-20
  • 打赏
  • 举报
回复
判断上班时间和下班时间在哪个时间段里,包含午餐就-1.5,包含午餐晚餐,-2.5
Ayanamikula 2011-07-20
  • 打赏
  • 举报
回复
需要考虑早退,迟到的现象吗?
chenhaoying 2011-07-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 li_1042237864 的回复:]
说实话 我没看懂
[/Quote]

那里看不懂?我的主要目的是想计算考勤时间,考勤时间的计算公式是:
考勤时间=下班时间-上班时间-用餐时间
现在问题是不好判断改减多少用餐时间。
纯唇Yu弄 2011-07-20
  • 打赏
  • 举报
回复
说实话 我没看懂
zcxverygood123456 2011-07-20
  • 打赏
  • 举报
回复
关注一下
紫魂一号 2011-07-20
  • 打赏
  • 举报
回复
什么弹性不弹性哦,上班打开开始计时,到下班打卡结束,算下有多少个小时,然后用餐用了多少时间,两个时间一想减不就是你要的时间么
indusl 2011-07-20
  • 打赏
  • 举报
回复
说实话 我没看懂
加载更多回复(3)

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧