Модуль:Code/Формат/Время: различия между версиями

Материал из Space Station 14 Вики
Новая страница: «local p = {} local function format_time(mode, value) local total_seconds = mode == "minutes" and (value * 60) or value local hours = math.floor(total_seconds / 3600) local minutes = math.floor((total_seconds % 3600) / 60) local seconds = total_seconds % 60 local parts = {} if hours > 0 then table.insert(parts, hours .. " час." .. (hours > 1 and "а" or "")) end if minutes > 0 then table.inser...»
 
мНет описания правки
 
Строка 11: Строка 11:
      
      
     if hours > 0 then
     if hours > 0 then
         table.insert(parts, hours .. " час." .. (hours > 1 and "а" or ""))
         table.insert(parts, hours .. " час.")
     end
     end
     if minutes > 0 then
     if minutes > 0 then

Текущая версия от 19:28, 14 февраля 2025

Для документации этого модуля может быть создана страница Модуль:Code/Формат/Время/doc

local p = {}

local function format_time(mode, value)
    local total_seconds = mode == "minutes" and (value * 60) or value
    
    local hours = math.floor(total_seconds / 3600)
    local minutes = math.floor((total_seconds % 3600) / 60)
    local seconds = total_seconds % 60
    
    local parts = {}
    
    if hours > 0 then
        table.insert(parts, hours .. " час.")
    end
    if minutes > 0 then
        table.insert(parts, minutes .. " мин.")
    end
    if seconds > 0 or #parts == 0 then
        table.insert(parts, seconds .. " сек.")
    end
    
    return table.concat(parts, " ")
end

function p.main(frame)
    local args = frame.args
    local mode = args[1] or "seconds"
    local value = tonumber(args[2]) or 0
    
    return format_time(mode, value)
end

return p