Module:Time: Difference between revisions
From Melvor Idle
No edit summary |
(Remove unused functions) |
||
Line 2: | Line 2: | ||
local Number = require('Module:Number') | local Number = require('Module:Number') | ||
local StringBuilder = require('Module:StringBuilder') | |||
function p._secondsToHMS(totalSeconds) | |||
function p. | |||
local days = math.floor(totalSeconds / (24 * 60 * 60)) | local days = math.floor(totalSeconds / (24 * 60 * 60)) | ||
if days >= 1 then | if days >= 1 then | ||
Line 13: | Line 13: | ||
end | end | ||
function p._secondsToHuman(totalSeconds) | |||
function p. | |||
ts = Number.secondsToTimeSpan(totalSeconds) | ts = Number.secondsToTimeSpan(totalSeconds) | ||
if ts.totalSeconds < 60 then | if ts.totalSeconds < 60 then | ||
Line 39: | Line 38: | ||
end | end | ||
function | function p.secondsToHuman(frame) | ||
local frame = frame or mw.getCurrentFrame() | |||
local args = frame:getParent().args | |||
return p._secondsToHuman(args[0]) | |||
local | |||
end | end | ||
return p | return p |
Revision as of 19:42, 13 April 2024
Provides time helper functions that can be used elsewhere in the wiki
local p = {}
local Number = require('Module:Number')
local StringBuilder = require('Module:StringBuilder')
function p._secondsToHMS(totalSeconds)
local days = math.floor(totalSeconds / (24 * 60 * 60))
if days >= 1 then
return string.format('%d day%s, ', days, (days > 1) and "s" or "") .. os.date("!%X", totalSeconds)
else
return os.date("!%X", totalSeconds)
end
end
function p._secondsToHuman(totalSeconds)
ts = Number.secondsToTimeSpan(totalSeconds)
if ts.totalSeconds < 60 then
if math.floor(ts.totalSeconds) == 0 then
return string.format('0 seconds')
else
return string.format('%.1f seconds', ts.totalSeconds)
end
end
local output = {}
if ts.days > 0 then
table.insert(output, string.format('%d day%s', ts.days, (ts.days > 1) and "s" or ""))
end
if ts.hours > 0 then
table.insert(output, string.format('%d hour%s', ts.hours, (ts.hours > 1) and "s" or ""))
end
if ts.minutes > 0 then
table.insert(output, string.format('%d minute%s', ts.minutes, (ts.minutes > 1) and "s" or ""))
end
if ts.seconds > 0 then
table.insert(output, string.format('%d second%s', ts.seconds, (ts.seconds > 1) and "s" or ""))
end
return table.concat(output, ", ")
end
function p.secondsToHuman(frame)
local frame = frame or mw.getCurrentFrame()
local args = frame:getParent().args
return p._secondsToHuman(args[0])
end
return p