Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Documentation for this module may be created at Module:Duration/doc

local duration = {}

function duration.fromSeconds(frame)
	frame = frame:getParent()
	local seconds = frame.args.Seconds or tonumber(frame.args[1]) or frame.args.seconds or 0
	if seconds and (type(seconds) ~= "number" and not tonumber(seconds)) then
		return "<strong>Error in Module:Duration: argument Seconds ('" .. seconds .. "') is not a number</strong>"
	end
    
	local minutes = frame.args.Minutes or frame.args.minutes or 0
	if minutes and (type(minutes) ~= "number" and not tonumber(minutes)) then
		return "<strong>Error in Module:Duration: argument Minutes ('" .. minutes .. "') is not a number</strong>"
	end

	local hours = frame.args.Hours or frame.args.hours or 0
	if hours and (type(hours) ~= "number" and not tonumber(hours)) then
		return "<strong>Error in Module:Duration: argument Hours ('" .. hours .. "') is not a number</strong>"
	end

	local days = frame.args.Days or frame.args.days or 0
	if days and (type(days) ~= "number" and not tonumber(days)) then
		return "<strong>Error in Module:Duration: argument Days ('" .. days .. "') is not a number</strong>"
	end

	seconds = seconds + (minutes*60) + (hours*3600) + (days*86400)

	local result = ""
	if seconds >= 86400 then
		local days = math.floor(seconds / 86400)
		seconds = seconds - days*86400
		result = result .. days .. "&nbsp;d"
	end
	if seconds >= 3600 then
		local hours = math.floor(seconds / 3600)
		seconds = seconds - hours*3600
		result = result .. hours .. "&nbsp;h"
	end
	if seconds >= 60 then
		if #result > 0 then
			result = result .. "&nbsp;"
		end
		local minutes = math.floor(seconds / 60)
		seconds = seconds - minutes * 60
		result = result .. minutes .. "&nbsp;min"
	end
	if seconds > 0 or #result == 0 then
		if #result > 0 then
			result = result .. "&nbsp;"
		end
		result = result .. seconds .. "&nbsp;s"
	end
	return result
end

return duration