基本上,我如何使用os.time()
和os.difftime()
或可能os.clock()
来查找我在脚本某个部分运行的当前时间。
所以在10分钟我试图运行一个命令,并且在20分钟后我试图以10分钟的间隔一直运行另一个命令直到40分钟然后我试图重新设置为0并且重新启动。
有什么想法吗?
答案 0 :(得分:1)
你有什么问题?这一切都在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)提供方便的定时器和定时器事件功能。如果您不想自己实施它。
答案 1 :(得分:0)
您可以让脚本存储初始时间稍后使用该值来查找脚本启动后的时间,例如:
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...")