在第一次循环完成后再开始第二次循环
2018-10-8 17:1:42
收藏:0
阅读:174
评论:1
我试图编写一个函数,将剩余的秒数转换为人类可读的格式。我遇到的问题(我认为)是我的第二个 while 循环在第一个完成之前就试图完成它的工作。我最终会得到"1 小时,271 分钟和 37 秒。在我最新的尝试中,我尝试使用 minNeeded,但它也不起作用,因为它在第一次循环完成之前就检查它的存在。我该如何处理这个问题?
function prettyTime(secs)
local hr = 0
local hrDisplay = ''
local min = 0
local minDislplay = ''
local minNeeded = 0
if(secs >= 3600) then
while secs >= 3600 do
secs = secs - 3600
hr = hr + 1
if secs < 3600 then
secsRemaining = secs
minNeeded = 1
end
end
else
minNeeded = 1
end
while true do
if(minNeeded == 1){
while secsRemaining >= 60 do
secsRemaining = secsRemaining - 60
min = min + 1
end
end
end
if hr > 1 then
hrDisplay = hr .. ' 小时,'
elseif hr == 1 then
hrDisplay = '1 小时,'
end
if min > 1 then
minDisplay = min .. ' 分钟和 '
elseif min == 1 then
minDisplay = '1 分钟和 '
else
minDisplay = ''
end
return hrDisplay .. minDisplay .. secs .. ' 秒'
end
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

你的代码有些 bug,
if(minNeeded == 1){是语法错误,while true do将永远不会退出。以下是简单的转换器,
function prettyTime(sec) local sec = tonumber(sec) if sec <= 0 then return "00.00.00"; else h = tonumber(string.format("%02.f", math.floor(sec/3600))) m = tonumber(string.format("%02.f", math.floor(sec/60 - (h*60)))) s = tonumber(string.format("%02.f", math.floor(sec - h*3600 - m*60))) -- return h.."."..m.."."..s end local res = '' if h == 1 then res = res ..h .. ' hour, ' elseif h > 1 then res = res ..h .. ' hours, ' end if m <= 1 then res = res ..m .. ' minute, ' elseif m > 1 then res = res ..m .. ' minutes, ' end if s <= 1 then res = res ..s .. ' second, ' elseif s > 1 then res = res ..s .. ' seconds ' end return res end print(prettyTime(3670)) -- 1 hour, 1 minute, 10 seconds