找回密码
 加入
搜索
查看: 3846|回复: 6

[效率算法] 给出起始时间和结束时间,如何生成区间内的一个随机时间?[已解决]

  [复制链接]
发表于 2014-4-29 11:49:18 | 显示全部楼层 |阅读模式
本帖最后由 olala 于 2014-5-8 23:21 编辑

例如给出当天内,任意起始时间01:24:09和结束时间15:13:50,然后函数返回这两个时间内的一个随机时间xx:xx:xx

我想了一下,下面这个整点就还好做,如果是像上述时间值,就不懂如何搞了。


Func _RTime($S,$E);输入起始时间01:00:00和结束时间12:00:00,返回中间的一个随机时间xx:xx:xx
        Local $nTime[3]
        $St = StringRegExp($S, '\d\d', 3)
        $En = StringRegExp($E, '\d\d', 3)
        $nTime[0]=Random($St[0],$En[0]-1,1)
        $nTime[1]=Random(1,60,1)
        $nTime[2]=Random(1,60,1)
        $newTime=StringFormat('%02d:%02d:%02d', $nTime[0], $nTime[1], $nTime[2])
        Return $newTime
EndFunc
发表于 2014-4-29 11:52:19 | 显示全部楼层
自己在中间添加:符号
发表于 2014-4-29 21:39:10 | 显示全部楼层
代码如下,自已再加工一下,最好加上时间有效性检测
#include <Date.au3>
Global $Hour, $Min, $Sec
$rtt = Random(_TimeToTicks(01, 24, 09), _TimeToTicks(15, 13, 50))
_TicksToTime($rtt, $Hour, $Min, $Sec)
MsgBox(262144, '', '取得某时段间的随机时间:' & StringFormat("%02d:%02d:%02d\n", $Hour, $Min, $Sec))
发表于 2014-4-30 21:41:48 | 显示全部楼层
看过大型软件的日期是一个数字形式(具体怎样转化不知道),两个日期数字间的数就能达到你的要求
发表于 2014-4-30 22:16:06 | 显示全部楼层
#3楼正解,谢谢了
发表于 2017-3-29 17:17:16 | 显示全部楼层
学习学习
发表于 2017-3-30 00:00:04 | 显示全部楼层
好不错。谢谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-23 12:51 , Processed in 0.074789 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表