Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Time Lua4脚本,用于将经过的秒数转换为天、小时、分钟、秒_Time_Lua_Lua 4.0 - Fatal编程技术网

Time Lua4脚本,用于将经过的秒数转换为天、小时、分钟、秒

Time Lua4脚本,用于将经过的秒数转换为天、小时、分钟、秒,time,lua,lua-4.0,Time,Lua,Lua 4.0,我需要一个lua4脚本,该脚本将自seconds=0以来经过的秒数转换为D:HH:MM:SS格式的字符串。我所研究的方法尝试将数字转换为日历日期和时间,但我只需要0以来经过的时间。如果日值增加到数百或数千,则没有关系。如何编写这样的脚本?试试以下方法: function disp_time(time) local days = floor(time/86400) local remaining = time % 86400 local hours = floor(remaining/

我需要一个lua4脚本,该脚本将自
seconds=0以来经过的秒数转换为D:HH:MM:SS格式的字符串。我所研究的方法尝试将数字转换为日历日期和时间,但我只需要
0
以来经过的时间。如果日值增加到数百或数千,则没有关系。如何编写这样的脚本?

试试以下方法:

function disp_time(time)
  local days = floor(time/86400)
  local remaining = time % 86400
  local hours = floor(remaining/3600)
  remaining = remaining % 3600
  local minutes = floor(remaining/60)
  remaining = remaining % 60
  local seconds = remaining
  if (hours < 10) then
    hours = "0" .. tostring(hours)
  end
  if (minutes < 10) then
    minutes = "0" .. tostring(minutes)
  end
  if (seconds < 10) then
    seconds = "0" .. tostring(seconds)
  end
  answer = tostring(days)..':'..hours..':'..minutes..':'..seconds
  return answer
end

cur_time = os.time()
print(disp_time(cur_time))
功能显示时间(time)
当地天数=楼层(时间/86400)
本地剩余时间=时间%86400
当地时间=楼层(剩余/3600)
剩余=剩余的%3600
本地会议记录=楼层(剩余/60)
剩余=剩余的%60
本地秒数=剩余秒数
如果(小时数<10),则
小时数=“0”。。tostring(小时)
终止
如果(分钟<10),则
分钟数=“0”。。tostring(分钟)
终止
如果(秒<10),则
秒数=“0”。。tostring(秒)
终止
答案=tostring(天)“:”…小时:“…分钟:”…秒
回覆
终止
cur_time=os.time()
打印(显示时间(当前时间))
试试这个:

function disp_time(time)
  local days = floor(time/86400)
  local remaining = time % 86400
  local hours = floor(remaining/3600)
  remaining = remaining % 3600
  local minutes = floor(remaining/60)
  remaining = remaining % 60
  local seconds = remaining
  if (hours < 10) then
    hours = "0" .. tostring(hours)
  end
  if (minutes < 10) then
    minutes = "0" .. tostring(minutes)
  end
  if (seconds < 10) then
    seconds = "0" .. tostring(seconds)
  end
  answer = tostring(days)..':'..hours..':'..minutes..':'..seconds
  return answer
end

cur_time = os.time()
print(disp_time(cur_time))
功能显示时间(time)
当地天数=楼层(时间/86400)
本地剩余时间=时间%86400
当地时间=楼层(剩余/3600)
剩余=剩余的%3600
本地会议记录=楼层(剩余/60)
剩余=剩余的%60
本地秒数=剩余秒数
如果(小时数<10),则
小时数=“0”。。tostring(小时)
终止
如果(分钟<10),则
分钟数=“0”。。tostring(分钟)
终止
如果(秒<10),则
秒数=“0”。。tostring(秒)
终止
答案=tostring(天)“:”…小时:“…分钟:”…秒
回覆
终止
cur_time=os.time()
打印(显示时间(当前时间))

我找到了一个我能够适应的Java示例

function seconds_to_days_hours_minutes_seconds(total_seconds)
    local time_days     = floor(total_seconds / 86400)
    local time_hours    = floor(mod(total_seconds, 86400) / 3600)
    local time_minutes  = floor(mod(total_seconds, 3600) / 60)
    local time_seconds  = floor(mod(total_seconds, 60))
    if (time_hours < 10) then
        time_hours = "0" .. time_hours
    end
    if (time_minutes < 10) then
        time_minutes = "0" .. time_minutes
    end
    if (time_seconds < 10) then
        time_seconds = "0" .. time_seconds
    end
    return time_days .. ":" .. time_hours .. ":" .. time_minutes .. ":" .. time_seconds
end
功能秒到天小时分钟秒(总秒)
当地时间天=楼层(总秒/86400)
当地时间小时=楼层(mod(总秒数,86400)/3600)
当地时间分钟=楼层(mod(总秒数,3600)/60)
当地时间秒=楼层(mod(总秒数,60))
如果(时间小于10小时),则
时间_hours=“0”。。时间
终止
如果(时间_分钟<10),则
时间_分钟=“0”。。时间(分钟)
终止
如果(时间小于10秒),则
时间\u秒=“0”。。时间单位秒
终止
返回时间为天。。":" .. 时间。。":" .. 时间是十分钟。。":" .. 时间单位秒
终止

我找到了一个我能够适应的Java示例

function seconds_to_days_hours_minutes_seconds(total_seconds)
    local time_days     = floor(total_seconds / 86400)
    local time_hours    = floor(mod(total_seconds, 86400) / 3600)
    local time_minutes  = floor(mod(total_seconds, 3600) / 60)
    local time_seconds  = floor(mod(total_seconds, 60))
    if (time_hours < 10) then
        time_hours = "0" .. time_hours
    end
    if (time_minutes < 10) then
        time_minutes = "0" .. time_minutes
    end
    if (time_seconds < 10) then
        time_seconds = "0" .. time_seconds
    end
    return time_days .. ":" .. time_hours .. ":" .. time_minutes .. ":" .. time_seconds
end
功能秒到天小时分钟秒(总秒)
当地时间天=楼层(总秒/86400)
当地时间小时=楼层(mod(总秒数,86400)/3600)
当地时间分钟=楼层(mod(总秒数,3600)/60)
当地时间秒=楼层(mod(总秒数,60))
如果(时间小于10小时),则
时间_hours=“0”。。时间
终止
如果(时间_分钟<10),则
时间_分钟=“0”。。时间(分钟)
终止
如果(时间小于10秒),则
时间\u秒=“0”。。时间单位秒
终止
返回时间为天。。":" .. 时间。。":" .. 时间是十分钟。。":" .. 时间单位秒
终止

这与其他答案类似,但较短。返回行使用中的格式字符串以D:HH:MM:SS格式显示结果

function disp_time(time)
  local days = floor(time/86400)
  local hours = floor(mod(time, 86400)/3600)
  local minutes = floor(mod(time,3600)/60)
  local seconds = floor(mod(time,60))
  return format("%d:%02d:%02d:%02d",days,hours,minutes,seconds)
end

这与其他答案相似,但较短。返回行使用中的格式字符串以D:HH:MM:SS格式显示结果

function disp_time(time)
  local days = floor(time/86400)
  local hours = floor(mod(time, 86400)/3600)
  local minutes = floor(mod(time,3600)/60)
  local seconds = floor(mod(time,60))
  return format("%d:%02d:%02d:%02d",days,hours,minutes,seconds)
end

tostring(小时)
应替换为
string.sub(100+小时,-2)
(“0”。.hours):sub(-2)
以生成两位数字符串(“HH”格式)。对不起。它应该是
strsub(100+小时,-2)
math.floor
应该替换为
floor
对于lua4
tostring(小时)
应该替换为
string.sub(100+小时,-2)
或者
(.hours):sub(-2)来生成两位字符串(“HH”格式)。对不起。它应该是
strsub(100+小时,-2)
math.floor
应该被lua4的
floor
替换。我正在开发的游戏不支持
格式
功能。但我会标记这个答案,因为我认为它是最好的。我正在开发的游戏不支持
格式
功能。但无论如何,我会记下这个答案,因为我认为它是最好的。