JAVA签到系统的逻辑判断部分应该怎么判断?

qq_23261085 2018-01-11 03:27:15
补签功能
1.当天之前没有过签到,那么只能补签到当天的前一天。
例如今天11号,之前无签到次数,那么就只能补签到10号,11号必须是签到。
2.当天之前有过签到,那么就可以补签到当天,切换到次日,不能补签。
例如今天11号,之前有过1次签到,那么就可以补签到11号,(然后PC系统时间调整为12号时,不能补签)。括号里是我不懂的
地方,并没有判断出来如何达成这个条件。
注意: 如果没有限制这些条件其实就是不管今天是几号,点1次补签就都是从次数为1开始累加。
以下贴出我的代码思路,并没有实现,因为两种情况互斥了,还请大佬们看完我的思路帮我指点一下迷津。
if (当日Day - 1 > 签到总次数) { if (当日Day > 签到总次数) {
执行补签 执行补签
} else { } else {
不能补签,请签到! 不能补签,请签到!
} }






...全文
1143 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
thank_you52 2018-01-15
  • 打赏
  • 举报
回复
引用 10 楼 qq_23261085 的回复:
[quote=引用 9 楼 thank_you52 的回复:] 有一段代码,执行顺序签到(与今天是几号没关系),执行1次,签到次数就会加1,这样以此类推,到了每个月1号执行时,签到次数再从1开始。 1.怎么样判断,才能只签到至今天(今天的12号作为示例)为止 2.怎么样判断,才能只签到至今天(今天的12号作为示例)的前一天为止 单独建个变量flag,如果之前没有签到,变量为1,有则为0 ,然后 if (当日Day - flag> 签到总次数) { 执行补签 } else { 不能补签,请签到! }
这个问题我解决了。大神,我想问你另一个问题,我有点不懂。 每到一个新的月份 就把 签到次数归零,这应该怎么操作? 比如今天1月13号,我点了1次签到,签到次数+1。 时间切换到2月15号时点1次签到,签到次数应该显示为1,切换到3月26号,点1次签到 还应该是显示签到次数为1。 这个怎么判断?[/quote] 这个应该在你统计签到总数的时候处理,分为历史累计签到次数和当月签到次数,不知道你的数据库是怎么设计的,有没有记录下前一次签到的时间?
  • 打赏
  • 举报
回复
问题描述的不是特别清楚。。我觉得你应该为每个人增加一个每天的补签状态flag,true表示已经补签,false表示还未补签,假如今天是10号,在今天签到之前的总签到次数为n,则
if (n > 0) {
  if (!flag) {
      补签到10号;
     flag = true;
  }
} else {
  if (!flag) {
      补签到9号;
     flag = true;
  }
}
什么都不能 2018-01-14
  • 打赏
  • 举报
回复
你这是真实项目呢还是自己做着玩呢?补签是要经过人事的确认或者是直属领导确认,属于一个人事考勤流程,和休假、请假属于一个范畴,而且补签还需要涉及到考勤记录,比如 11号打开时间是11:00 ~ 18:00,那你再补签就不合适了,那就是旷工半天。
qq_23261085 2018-01-13
  • 打赏
  • 举报
回复
引用 6 楼 qq_38655879 的回复:
你做的是BS还是CS?
这个问题我解决了。大神,我想问你另一个问题,我有点不懂。 每到一个新的月份 就把 签到次数归零,这应该怎么操作? 比如今天1月13号,我点了1次签到,签到次数+1。 时间切换到2月15号时点1次签到,签到次数应该显示为1,切换到3月26号,点1次签到 还应该是显示签到次数为1。 这个怎么判断?
qq_23261085 2018-01-13
  • 打赏
  • 举报
回复
引用 9 楼 thank_you52 的回复:
有一段代码,执行顺序签到(与今天是几号没关系),执行1次,签到次数就会加1,这样以此类推,到了每个月1号执行时,签到次数再从1开始。 1.怎么样判断,才能只签到至今天(今天的12号作为示例)为止 2.怎么样判断,才能只签到至今天(今天的12号作为示例)的前一天为止 单独建个变量flag,如果之前没有签到,变量为1,有则为0 ,然后 if (当日Day - flag> 签到总次数) { 执行补签 } else { 不能补签,请签到! }
这个问题我解决了。大神,我想问你另一个问题,我有点不懂。 每到一个新的月份 就把 签到次数归零,这应该怎么操作? 比如今天1月13号,我点了1次签到,签到次数+1。 时间切换到2月15号时点1次签到,签到次数应该显示为1,切换到3月26号,点1次签到 还应该是显示签到次数为1。 这个怎么判断?
thank_you52 2018-01-12
  • 打赏
  • 举报
回复
有一段代码,执行顺序签到(与今天是几号没关系),执行1次,签到次数就会加1,这样以此类推,到了每个月1号执行时,签到次数再从1开始。 1.怎么样判断,才能只签到至今天(今天的12号作为示例)为止 2.怎么样判断,才能只签到至今天(今天的12号作为示例)的前一天为止 单独建个变量flag,如果之前没有签到,变量为1,有则为0 ,然后 if (当日Day - flag> 签到总次数) { 执行补签 } else { 不能补签,请签到! }
qq_23261085 2018-01-12
  • 打赏
  • 举报
回复
引用 6 楼 qq_38655879 的回复:
你做的是BS还是CS?
我重新描述一下吧。有一段代码,执行顺序签到(与今天是几号没关系),执行1次,签到次数就会加1,这样以此类推,到了每个月1号执行时,签到次数再从1开始。 1.怎么样判断,才能只签到至今天(今天的12号作为示例)为止 2.怎么样判断,才能只签到至今天(今天的12号作为示例)的前一天为止
qq_23261085 2018-01-12
  • 打赏
  • 举报
回复
引用 6 楼 qq_38655879 的回复:
你做的是BS还是CS?
cs
WejanLin 2018-01-12
  • 打赏
  • 举报
回复
你做的是BS还是CS?
qq_23261085 2018-01-11
  • 打赏
  • 举报
回复
引用 2 楼 shangjianli 的回复:
来,哥给你指点下
那你就说说呗 提提意见或者是解决思路
qq_23261085 2018-01-11
  • 打赏
  • 举报
回复
引用 3 楼 qq_38655879 的回复:
2.当天之前有过签到,那么就可以补签到当天,切换到次日,不能补签。 例如今天11号,之前有过1次签到,那么就可以补签到11号,(然后PC系统时间调整为12号时,不能补签)。括号里是我不懂的 这个逻辑有点看不懂。例如今天是11号,那我直接签到就行了,为啥还要补签?之前有签到过时指11号之前都有签到还是11号之前有过1次以上的签到?PC系统时间调整为12号时不能补签?这个是防止别人非法签到还是?
算是防止别人非法签到吧,虽然改成12号以后不管签到还是补签都只能到12号为止,但是防止用户点补签按钮,所以点补签按钮要提示错误。大神有何高见?
WejanLin 2018-01-11
  • 打赏
  • 举报
回复
2.当天之前有过签到,那么就可以补签到当天,切换到次日,不能补签。 例如今天11号,之前有过1次签到,那么就可以补签到11号,(然后PC系统时间调整为12号时,不能补签)。括号里是我不懂的 这个逻辑有点看不懂。例如今天是11号,那我直接签到就行了,为啥还要补签?之前有签到过时指11号之前都有签到还是11号之前有过1次以上的签到?PC系统时间调整为12号时不能补签?这个是防止别人非法签到还是?
戎码一生灬 2018-01-11
  • 打赏
  • 举报
回复
来,哥给你指点下
qq_23261085 2018-01-11
  • 打赏
  • 举报
回复
快来人啊啊啊

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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