如何在脚本中使用os.time()了解当前时间?

基本上,我如何使用os.time()os.difftime()或可能是os.clock()找出它已经在脚本的某个部分运行了多长时间的当前时间。

所以在10分钟时我正在尝试运行一个命令,在20分钟时我正在尝试运行另一个命令,一直到40分钟为止,在10分钟间隔中重复并尝试重置回0并重新启动。

有任何想法吗?

点赞
用户2858170
用户2858170

你的问题是什么?在 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)提供便捷的计时器和计时器事件功能,如果不想自己实现的话。

2016-09-19 13:05:49
用户1849746
用户1849746

你可以编写脚本以存储初始时间并稍后使用该值来查找脚本自启动以来的时间,例如:

start_time = os.time()

function sleep(n)  -- 显示等待n秒钟
  local t0 = os.clock()
  while os.clock() - t0 <= n do end
end

-- 在此处编写脚本逻辑…
-- …
sleep(5)
-- …
-- 通过再次调用os.time(),您可以找到自执行开始以来经过了多长时间
print(os.time()-start_time.." 秒自脚本执行开始以来...")
2016-10-18 18:18:40