<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=Module%3ATime</id>
	<title>Module:Time - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=Module%3ATime"/>
	<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Time&amp;action=history"/>
	<updated>2026-05-15T09:12:53Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://wiki.runerealm.org/index.php?title=Module:Time&amp;diff=34062&amp;oldid=prev</id>
		<title>Alex: Created page with &quot;-- &lt;pre&gt;  local p = {}  -- minutes to hh:mm:ss function p.m_to_c(frame) 	local args = frame:getParent().args 	local arg = args[1] 	return p._m_to_c(arg) end  function p._m_to_c(arg) 	arg = arg or &#039;&#039; 	if arg == &#039;&#039; then 		return &#039;&#039; 	end  	-- look for and parse fractions 	if arg:find(&#039;/&#039;) then 		local n,d = arg:match(&#039;(%d+)%s*/%s*(%d+)&#039;)  		n = tonumber(n,10) 		d = tonumber(d,10)  		-- only continue if 60 (seconds in a minute) is denom 		if d == 60 then 			arg = n/d 		else...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Time&amp;diff=34062&amp;oldid=prev"/>
		<updated>2024-10-15T21:14:51Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;-- &amp;lt;pre&amp;gt;  local p = {}  -- minutes to hh:mm:ss function p.m_to_c(frame) 	local args = frame:getParent().args 	local arg = args[1] 	return p._m_to_c(arg) end  function p._m_to_c(arg) 	arg = arg or &amp;#039;&amp;#039; 	if arg == &amp;#039;&amp;#039; then 		return &amp;#039;&amp;#039; 	end  	-- look for and parse fractions 	if arg:find(&amp;#039;/&amp;#039;) then 		local n,d = arg:match(&amp;#039;(%d+)%s*/%s*(%d+)&amp;#039;)  		n = tonumber(n,10) 		d = tonumber(d,10)  		-- only continue if 60 (seconds in a minute) is denom 		if d == 60 then 			arg = n/d 		else...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- minutes to hh:mm:ss&lt;br /&gt;
function p.m_to_c(frame)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local arg = args[1]&lt;br /&gt;
	return p._m_to_c(arg)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._m_to_c(arg)&lt;br /&gt;
	arg = arg or &amp;#039;&amp;#039;&lt;br /&gt;
	if arg == &amp;#039;&amp;#039; then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- look for and parse fractions&lt;br /&gt;
	if arg:find(&amp;#039;/&amp;#039;) then&lt;br /&gt;
		local n,d = arg:match(&amp;#039;(%d+)%s*/%s*(%d+)&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
		n = tonumber(n,10)&lt;br /&gt;
		d = tonumber(d,10)&lt;br /&gt;
&lt;br /&gt;
		-- only continue if 60 (seconds in a minute) is denom&lt;br /&gt;
		if d == 60 then&lt;br /&gt;
			arg = n/d&lt;br /&gt;
		else&lt;br /&gt;
			return &amp;#039;&amp;#039; --for now&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	arg = tonumber(arg)&lt;br /&gt;
&lt;br /&gt;
	-- return if can&amp;#039;t parse as a number&lt;br /&gt;
	if not arg then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- multiply by 60 so we&amp;#039;re working with seconds&lt;br /&gt;
	arg = math.floor(arg * 60)&lt;br /&gt;
&lt;br /&gt;
	local h,m,s = math.floor(arg/3600), math.floor((arg%3600)/60), arg%60&lt;br /&gt;
&lt;br /&gt;
	-- 0 pad numbers to 2 places&lt;br /&gt;
	return string.format(&amp;#039;%02i:%02i:%02i&amp;#039;,h,m,s)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;#039;# &amp;lt;unit&amp;gt;&amp;#039; to number of seconds&lt;br /&gt;
function p.w_to_s(frame)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local arg = args[1]&lt;br /&gt;
	return p._w_to_s(arg)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._w_to_s(arg)&lt;br /&gt;
	arg = arg or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	if arg == &amp;#039;&amp;#039; then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- find a number followed by a single word&lt;br /&gt;
	local _arg,unit = arg:match(&amp;#039;(%d+)%s*(%S+)&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- lowercase unit&lt;br /&gt;
	unit = string.lower(unit)&lt;br /&gt;
&lt;br /&gt;
	-- multiplier&lt;br /&gt;
	local mult = 0&lt;br /&gt;
	if unit:find(&amp;#039;sec&amp;#039;) then&lt;br /&gt;
		mult = 1&lt;br /&gt;
	elseif unit:find(&amp;#039;min&amp;#039;) then&lt;br /&gt;
		mult = 60&lt;br /&gt;
	elseif unit:find(&amp;#039;hour&amp;#039;) then&lt;br /&gt;
		mult = 3600&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	arg = tonumber(_arg) * mult&lt;br /&gt;
&lt;br /&gt;
	return arg or 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- &amp;#039;# &amp;lt;unit&amp;gt;&amp;#039; to hh:mm:ss&lt;br /&gt;
function p.w_to_c(frame)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local arg = args[1]&lt;br /&gt;
	return p._w_to_c(arg)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._w_to_c(arg)&lt;br /&gt;
	arg = p._w_to_s(arg)&lt;br /&gt;
	local h,m,s = math.floor(arg/3600), math.floor((arg%3600)/60), arg%60&lt;br /&gt;
&lt;br /&gt;
	-- 0 pad numbers to 2 places&lt;br /&gt;
	return string.format(&amp;#039;%02i:%02i:%02i&amp;#039;,h,m,s)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
</feed>