Foxtable(狐表)用户栏目专家坐堂 → 求时间段计算


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

主题:求时间段计算

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


加好友 发短信
等级:小狐 帖子:300 积分:2565 威望:0 精华:0 注册:2013/5/23 9:49:00
求时间段计算  发帖心情 Post By:2014/1/15 11:27:00 [只看该作者]

Select Case e.DataCol.Name
    Case "开始日期","结束日期"
        Dim dr,dr1 As DataRow
        dr = e.DataRow
        If dr.IsNull("开始日期") OrElse dr.IsNull("结束日期") Then
            dr("请假天数") = Nothing
        Else
            Dim n1,n2,n3 As Double
            Dim d1,d2,d3,d5 As Date
            d1 = dr("开始日期")
            d2 = dr("结束日期")
            n1 = (Cdate(format(d2,"yyyy/M/d")) - Cdate(format(d1,"yyyy/M/d"))).TotalDays
            If n1 <1 Then
                dr("请假天数") = Round2((d2 - d1).TotalDays*2.61818,3)
            ElseIf n1 <2 Then
                d3 = Format(d1,"HH:MM")
                d5 = #16:30#
                n2 = (d5-d3).TotalDays*26.1818/9.1666
                d3 = #07:20#
                d5 = Format(d2,"HH:MM")
                n2+ = (d5-d3).TotalDays*26.1818/9.1666
                dr("请假天数") = Round2(n2,1)
            Else  
                For n2 = 1 To n1 -1
                    d3= d1.AddDays(n2)
                    dr1=DataTables("法定假期").Find("日期=#" & format(d3,"M/d/yyyy") & "#")
                    If d3.DayOfWeek<>6 AndAlso d3.DayOfWeek<> 0  AndAlso dr1 Is Nothing Then
                        n3+= 1
                    End If
                Next
                d3 = Format(d1,"HH:MM")
                d5 = #16:30#
                n2 = (d5-d3).TotalDays*26.1818/9.1666
                d3 = #07:20#
                d5 = Format(d2,"HH:MM")
                n2+ = (d5-d3).TotalDays*26.1818/9.1666
                dr("请假天数") = Round2(n2+n3,1)
            End If
        End If
End Select

 

比如:开始日期是 2014/09/03 7:20   结束日期是 2014/09/04 16:30    请假天数是 2.2

如果是:开始日期是 2014/09/04 7:20   结束日期是 2014/09/04 16:30    请假天数是 1

请指点代码错在哪里?谢谢!

[此贴子已经被作者于2014-1-15 11:29:05编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/1/15 11:29:00 [只看该作者]

你现在是报错,还是计算结果不正确? 你这个是要怎么计算的?

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


加好友 发短信
等级:小狐 帖子:300 积分:2565 威望:0 精华:0 注册:2013/5/23 9:49:00
  发帖心情 Post By:2014/1/15 11:35:00 [只看该作者]

一天的计算结果是对的,多天的计算结果都多0.2天


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/1/15 11:40:00 [只看该作者]

如果都是多出标准的0.2天. 你直接减去0.2就好了.

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


加好友 发短信
等级:小狐 帖子:300 积分:2565 威望:0 精华:0 注册:2013/5/23 9:49:00
  发帖心情 Post By:2014/1/15 11:42:00 [只看该作者]

一天的刚好,是不是出在这个值 26.1818/9.1666


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/1/15 11:45:00 [只看该作者]

这个我没看懂是算什么的图片点击可在新窗口打开查看

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


加好友 发短信
等级:小狐 帖子:300 积分:2565 威望:0 精华:0 注册:2013/5/23 9:49:00
  发帖心情 Post By:2014/1/15 11:53:00 [只看该作者]

上传一个例子

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目11.zip

[此贴子已经被作者于2014-1-15 12:36:01编辑过]

 回到顶部