Foxtable(狐表)用户栏目专家坐堂 → 加班统计条件


  共有2365人关注过本帖树形打印复制链接

主题:加班统计条件

美女呀,离线,留言给我吧!
zhangning
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2016/8/15 14:19:00 [显示全部帖子]

解决了,用Math.Floor取的整数

 回到顶部
美女呀,离线,留言给我吧!
zhangning
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:3355 威望:0 精华:0 注册:2016/4/14 16:56:00
  发帖心情 Post By:2016/8/16 11:25:00 [显示全部帖子]

老师,在下列代码中追击了一个条件,就是如果签退时间超过19:30的话,需要扣除1.5小时(中午吃饭1小时,晚上7点以后休息半小时),如粗体,具体代码如下:
Select Case e.DataCol.Name
    Case "签退时间", "日期","签到时间"
        Dim d As Date = e.DataRow("日期")
        Dim dt As Date = e.DataRow("签退时间")
        Dim qd As Date = e.DataRow("签到时间")
        If d.DayOfWeek = 0 OrElse d.DayOfWeek = 6 Then
            If qd <= "8:00" Then
                qd = "8:00"
            ElseIf qd <= "8:30" Then
                qd = "8:30"
            ElseIf qd <= "9:00" Then
                qd = "9:00"
            ElseIf qd <= "9:30" Then
                qd = "9:30"
            ElseIf qd <= "10:00" Then
                qd = "10:00"
            ElseIf qd <= "10:30" Then
                qd = "10:30"
            ElseIf qd <= "11:00" Then
                qd = "11:00"
            ElseIf qd <= "11:30" Then
                qd = "11:30"
            ElseIf qd <= "12:00" Then
                qd = "12:00"
            ElseIf qd <= "13:00" Then
                qd = "13:00"
            ElseIf qd <= "13:30" Then
                qd = "13:30"
            ElseIf qd <= "14:00" Then
                qd = e.DataRow("签到时间")
            End If
            Dim sp As TimeSpan = dt - qd
            Dim n As Integer = Math.Floor(sp.TotalMinutes / 30)
            If qd < "12:00" AndAlso dt > "13:00" Then
                e.DataRow("二倍加班H") = n*0.5 - 1
            ElseIf qd < "12:00" AndAlso dt >= "19:30" Then
                e.DataRow("二倍加班H") = n*0.5 - 1.5
            Else
                e.DataRow("二倍加班H") = n*0.5
            End If
        Else
            Dim bz As Date = "17:05"
            If dt >= bz Then
                If dt >= "19:35" Then
                    dt = dt.AddMinutes(-30)
                ElseIf dt < "17:35" Then
                    dt = "17:06"
                ElseIf dt <= "19:05" Then
                    dt = e.DataRow("签退时间")
                ElseIf dt < "19:35"
                    dt = "19:05"
                End If
                Dim sp As TimeSpan = dt - bz
                Dim n As Integer = Math.Floor(sp.TotalMinutes / 30)
                e.DataRow("一倍半加班H") = n*0.5
            End If
        End If


但是 不起作用,请老师帮看看哪里错了,应如何该呢?



 回到顶部
总数 13 上一页 1 2