以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何生成随机不重复时间? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=176817) |
|
-- 作者:lgz518 -- 发布时间: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”的转换无效。 输入字符串的格式不正确。 |
|
-- 作者:有点蓝 -- 发布时间:2022/4/28 9:01:00 -- 怎么样的随机时间?当天任何一秒都可以? |
|
-- 作者:lgz518 -- 发布时间: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 |
|
-- 作者:有点蓝 -- 发布时间:2022/4/28 9:20:00 -- 意思是(7:30,8:10)这个范围内的任何一秒都可以?那么8:10 :01不是已经超出这个范围了吗? |
|
-- 作者:lgz518 -- 发布时间:2022/4/28 9:27:00 -- 是的,谢谢 |
|
-- 作者:z769036165 -- 发布时间:2022/4/28 9:29:00 -- 用Timespan把时间转换成数字,然后随机这数字范围内的值,然后在反过来把值转为时间 |
|
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2022/4/28 10:05:00 --
|
|
-- 作者:有点蓝 -- 发布时间:2022/4/28 10:25:00 -- 填入的是什么数据? msgbox(e.NewValue) |
|
-- 作者:lgz518 -- 发布时间:2022/4/28 10:34:00 -- 上实例,请老师帮助实现,谢谢 |