Foxtable(狐表)用户栏目专家坐堂 → 如何生成随机不重复时间?


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

主题:如何生成随机不重复时间?

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


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
如何生成随机不重复时间?  发帖心情 Post By:2022/4/27 18:56:00 [只看该作者]

如何根据“上班时间表”在“考勤表”指定“列”,随机生成时间,在同一天随机生成时间不能重复?


If e.DataCol.Name = "班别" Then 
    If e.NewValue Is Nothing Then '
        e.DataRow("第1段") = Nothing      
    Else
        Dim dr As DataRow
        
        dr = DataTables("上班时间表").Find("[班别] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then 
'            e.DataRow("第1段") = dr("第1段")
' 取随机数据,("第1段")的时间-15分钟,提前15分钟,("第1段")的时间+10分钟,延后10分钟,
            e.DataRow("第1段") = dr(Rand.Next((("第1段") - 900), (("第1段")) + 600 ) )
          
        End If
    End If
End If
红字报错

错误所在事件:表,考勤表, DataColChanged
详细错误信息:
调用的目标发生了异常。
从字符串“第1段”到类型“Double”的转换无效。
输入字符串的格式不正确。


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


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

怎么样的随机时间?当天任何一秒都可以?

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


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/4/28 9:16:00 [只看该作者]

老师:
《上班时间表》
班别    第1段    第2段    第3段      第4段         第5段      第6段
正常    8:00   12:00   13:00    17:00     18:00    20:00

考勤表

比如:《考勤表》的“第1段”是《上班时间表》的“班别” ,第1段” 8:00  的随机数范围(7:30,8:10),生成时间,不重复,秒可重复

班别    第1段              第2段    第3段      第4段         第5段      第6段
正常    7:30 :02      12:00   13:00    17:00     18:00    20:00
正常    7:31:03             12:00   13:00    17:00     18:00    20:00
正常    8:00 :00           12:00   13:00    17:00     18:00    20:00
正常    8:10  :01           12:00   13:00    17:00     18:00    20:00


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


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

意思是(7:30,8:10)这个范围内的任何一秒都可以?那么8:10  :01不是已经超出这个范围了吗?

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


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/4/28 9:27:00 [只看该作者]

是的,谢谢

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


加好友 发短信
等级:三尾狐 帖子:760 积分:5430 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2022/4/28 9:29:00 [只看该作者]

用Timespan把时间转换成数字,然后随机这数字范围内的值,然后在反过来把值转为时间

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


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

生成随机时间值

Dim d As Date = New Date(1, 1, 1, 7, 30, 0)
Dim max As Integer = 2401
Dim 随机时间 As Date = d.AddSeconds(rand.Next(2400))
msgbox(随机时间)

至于是否重复,可以通过查表的方式,比如使用find查询是否有这个时间的数据,如果有,重新生成时间即可

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


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/4/28 10:05:00 [只看该作者]

问题一:
生成随机时间值

Dim d As Date = New Date(1, 1, 1, 7, 30, 0)
Dim max As Integer = 2401
Dim 随机时间 As Date = d.AddSeconds(rand.Next(2400))
msgbox(随机时间)

至于是否重复,可以通过查表的方式,比如使用find查询是否有这个时间的数据,如果有,重新生成时间即可

这种会是固定方法,能否根据跨表的值产生成随机数

比如:
If e.DataCol.Name = "班别" Then 
    If e.NewValue Is Nothing Then '
        e.DataRow("第1段") = Nothing      
    Else
        Dim dr As DataRow
        
        dr = DataTables("上班时间表").Find("[班别] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then 
'            e.DataRow("第1段") = dr("第1段")
' 取随机数据,("第1段")的时间-15分钟,提前15分钟,("第1段")的时间+10分钟,延后10分钟,
            e.DataRow("第1段") = dr(Rand.Next((("第1段") - 900), (("第1段")) + 600 ) )
          
        End If
    End If
End If

问题二:
Dim d As Date = New Date(1, 1, 1, 7, 30, 0)
Dim max As Integer = 2401
Dim 随机时间 As Date = d.AddSeconds(rand.Next(2400))
如何实现,《考勤表》的第1段,第2段,用上面代码,文本框1,文本框2批量赋值?







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


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

填入的是什么数据?
msgbox(e.NewValue)


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


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/4/28 10:34:00 [只看该作者]

上实例,请老师帮助实现,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:随机时间.zip



 回到顶部
总数 19 1 2 下一页