Foxtable(狐表)用户栏目专家坐堂 → [求助]日期大小判定代码


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

主题:[求助]日期大小判定代码

帅哥哟,离线,有人找我吗?
rbsoft
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:51 积分:592 威望:0 精华:0 注册:2018/7/5 21:52:00
  发帖心情 Post By:2019/10/17 9:34:00 [只看该作者]

降序排列后,如图片中我可以把“结束时间”修改成15:28 系统没有提示。

图片点击可在新窗口打开查看此主题相关图片如下:456.jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥,在线噢!
有点蓝
  22楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105475 积分:536366 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/17 9:40:00 [只看该作者]

因为之前的代码只是判断了开始时间不能大于上一行的结束时间。没有做结束时间不能小于下一行的开始时间的判断。逻辑是一样的自己参考着做。

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


加好友 发短信
等级:幼狐 帖子:51 积分:592 威望:0 精华:0 注册:2018/7/5 21:52:00
  发帖心情 Post By:2019/10/25 17:24:00 [只看该作者]

不要意思,又要继续追问。关于时间问题,现在时间用的是短格式。但是统计的时候还是会统计到后面的秒,怎么样可以不统计到秒呢?比如:系统显示的时间是:9:30,其实系统记录的时间是9:30:18   这样就会多统计18秒,有什么办法不统计秒吗?

 回到顶部
帅哥,在线噢!
有点蓝
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105475 积分:536366 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/25 17:37:00 [只看该作者]

什么地方的统计,写了什么代码?

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


加好友 发短信
等级:幼狐 帖子:51 积分:592 威望:0 精华:0 注册:2018/7/5 21:52:00
  发帖心情 Post By:2019/10/28 9:36:00 [只看该作者]

就是这个你帮忙写的代码啊。即使时间格式是HHmm;虽然表格时间格式改成了DateTime,但是代码统计的总时间与实际手工计算的时间总是相差秒;现在就是问怎么样不会把秒计算进出呢?比如:系统显示的时间是:9:30,其实系统后台记录的时间是9:30:18   这样就会多统计18秒。

Dim d1 As Date = #10/11/2019 09:00#
Dim d2 As Date = #10/11/2019 16:00#

Dim sum As Integer = 0
If Format(d1,"HHmm") <= "1000" AndAlso Format(d2,"HHmm") >= "1010"
    sum = sum + 10
End If
If Format(d1,"HHmm") <= "1500" AndAlso Format(d2,"HHmm") >= "1510"
    sum = sum + 10
End If
If Format(d1,"HHmm") <= "1200" AndAlso Format(d2,"HHmm") >= "1300"
    sum = sum + 60
End If
msgbox(sum )
Dim sp As TimeSpan = d2 - d1
msgbox(sp.TotalMinutes)
Dim 总时间 = sp.TotalMinutes - sum
msgbox(总时间)
[此贴子已经被作者于2019/10/28 9:38:55编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105475 积分:536366 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/28 9:48:00 [只看该作者]

Dim d1 As Date = #10/11/2019 09:00#
Dim d2 As Date = #10/11/2019 16:00#
d1 = cdate(format(d1,"yyyy-MM-dd HH:mm:00"))
d2 = cdate(format(d2,"yyyy-MM-dd HH:mm:00"))

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


加好友 发短信
等级:幼狐 帖子:51 积分:592 威望:0 精华:0 注册:2018/7/5 21:52:00
  发帖心情 Post By:2019/10/28 15:08:00 [只看该作者]

谢谢,还有这个时间大小判断的代码,如果不让秒参入判定,怎么修改呢?
Select Case e.DataCol.Name
    Case "开始时间"
        If e.DataRow.IsNull("开始时间") = False
            If e.NewValue > e.DataRow("结束时间") Then
                msgbox("结束时间必须大于开始时间")
                e.Cancel = True
            End If
            Dim dr As DataRow = e.DataTable.Find("[_Identify] < " & e.DataRow("_Identify") & " and 工号='" & e.DataRow("工号") & "'","[_Identify] desc")
            If dr IsNot Nothing Then
                If e.NewValue < dr("结束时间") Then
                    msgbox("开始时间必须大于前面业务的结束时间")
                    e.Cancel = True
                End If
            End If
        End If
    Case "结束时间"
        If e.DataRow.IsNull("结束时间") = False
            If e.DataRow("开始时间") > e.NewValue Then
                msgbox("结束时间必须大于开始时间")
                e.Cancel = True
            End If
        End If
End Select

 回到顶部
帅哥,在线噢!
有点蓝
  28楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105475 积分:536366 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/28 15:19:00 [只看该作者]

If cdate(format(NewValue,"yyyy-MM-dd HH:mm:00")) < cdate(format(dr("结束时间"),"yyyy-MM-dd HH:mm:00")) Then

 回到顶部
总数 28 上一页 1 2 3