基本上,我如何使用os.time()
和os.difftime()
或可能的os.clock()
来找出当前它在脚本的某个部分运行的时间。如何使用os.time()知道脚本中的当前时间?
所以在10分钟我试图运行一个命令,并在20分钟我试图运行另一个命令一直到40分钟,以10分钟的间隔,然后我试图重置回0并重新启动。
任何想法?
基本上,我如何使用os.time()
和os.difftime()
或可能的os.clock()
来找出当前它在脚本的某个部分运行的时间。如何使用os.time()知道脚本中的当前时间?
所以在10分钟我试图运行一个命令,并在20分钟我试图运行另一个命令一直到40分钟,以10分钟的间隔,然后我试图重置回0并重新启动。
任何想法?
你的问题是什么?这些都在Lua参考手册中描述。 http://www.lua.org/manual/5.3/manual.html#pdf-os.time
os.time([table])
,如果没有参数调用返回当前时间。
os.difftime(t2, t1)
以秒为单位返回时间差t2-t1。
因此,只需存储您的开始时间,然后经常检查时间差是否大于600.然后重新设置您的开始时间并重新执行相同操作。
您还可以使用os.clock()
在你必须停止你是从时间做对什么时间和检查时间已经到了运行功能任何情况下。所以你必须把你的顺序代码分成可中断的位。如果你在这10分钟之间没有做任何事情,你可以简单地循环检查时间。
有大量的Lua库(例如wxLua)提供方便的定时器和定时器事件功能。如果你不想自己实现它。
你可以有你的脚本中存储初始时间使用该值以后找到的时间,因为剧本开始,如:
start_time = os.time()
function sleep(n) -- seconds
local t0 = os.clock()
while os.clock() - t0 <= n do end
end
-- Write script logic here...
-- ...
sleep(5)
-- ...
-- You can later find how much time passed since beginning of execution by calling os.time() again
print(os.time()-start_time.." seconds since start of script execution...")
'os.time()'返回的一些固定日期经过的秒数。 –
这是不是很清楚你在这里问什么。 – Veltas