zoukankan      html  css  js  c++  java
  • oralce的function处理考勤时间节点以及计算工作时间

    例如:

    上班时间为 8:30 到17:30,加班则到21:00;午休时间为1小时,(12:00-13:00);

    晚间休息时间为半小时 (17:30-18:00),计算一批考勤数据的上班时间。

    思路:

    选择上班时间或者下班时中的一个作为大类进行区分,进行时间段划分;

    选择另外一项作为小类,在大类的各个情况中按照小类来划分。这样会包含所有的情况,并且避免重复或者确实某一种情况。

    解决方案:

    首先将考勤数据按照上下班一一对应来进行数据整理。

    其次将考勤时间进行归类。将8:30之前的上班时间 直接算为8:30,下班时间21:00之后算为21:00.

    将两个时间做差,计算出时间差。将新整理的数据做成新的表或视图。

    然后,在function进行继续处理,判断每一笔数据的上班时间和下班时间处于哪个时间段。

    一、 上班时间在12:00 之前的情况

    ①下班时间在12:00之前,视图中的时间差不进行处理

    ②下班时间在12:00之后,并且在13:00之前的时间差要减去(下班时-12:00)

    ③下班时间在13:00之后,并且在17:30之前的时间差要减去1h

    ④下班时间在17:30之后,并且在18:00之钱的时间差要减去(1+(下班时间-17:30))

    ⑤下班时间在18:00之后,时间差减去 1.5h

    二、上班时间在12:00之后,并且在13:00之前

    ①下班时间在13:00之前,时间差计算为0

    ②下班时间在13:00之后,并且在17:30之前时间差要减去(12:00-上班时间)

    ③ 下班时间在17:30之后,并且在18:00之前时间差要减去((12:00-上班时间)+(下班时间+17:30))

    ④下班时间在18:00之后,时间差要减去((12:00-上班时间)+0.5h)

    三、上班时间在13:00之后,并且在17:30之前

    ①下班时间在17:30之前,时间差不进行处理

    ②下班时间在17:30之前,并且在18:00之前时间差要减去(下班时间-17:30)

    ③下班时间在18:00之后,时间差要减去0.5h

    四、上班时间在17:30之后,并且在18:00之前

    ①下班时间在18:00之前,时间差不进行处理

    ②下班时间在18:00之后,时间差减去(18:00-上班时间)

    五、上班时间在18:00 之后

    时间差不进行处理

  • 相关阅读:
    PTA 5-3 树的同构 ——理解递归
    停车管理系统
    两个有序链表序列的合并 (15分)
    lua 面向对象笔记 继承 和 组合
    二叉树高度计算,判定是否为平衡二叉树
    会用git的重要性,记工作中使用git reset 代码丢失的教训
    #include <bits/stdc++.h> 万能头文件
    C++中类的静态变量成员
    C++创建对象加括号和不加括号的区别
    deepin(深度系统)安装微信 qq
  • 原文地址:https://www.cnblogs.com/LittleDuan/p/10719839.html
Copyright © 2011-2022 走看看