<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://themidnight.wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3ADuration</id>
	<title>Module:Duration - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://themidnight.wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3ADuration"/>
	<link rel="alternate" type="text/html" href="https://themidnight.wiki/index.php?title=Module:Duration&amp;action=history"/>
	<updated>2026-04-03T19:46:37Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://themidnight.wiki/index.php?title=Module:Duration&amp;diff=6293&amp;oldid=prev</id>
		<title>Timothy: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://themidnight.wiki/index.php?title=Module:Duration&amp;diff=6293&amp;oldid=prev"/>
		<updated>2023-05-29T03:08:49Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:08, 28 May 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://themidnight.wiki/index.php?title=Module:Duration&amp;diff=6292&amp;oldid=prev</id>
		<title>wikipedia&gt;Pppery: Fix error message per edit request</title>
		<link rel="alternate" type="text/html" href="https://themidnight.wiki/index.php?title=Module:Duration&amp;diff=6292&amp;oldid=prev"/>
		<updated>2020-05-11T14:05:19Z</updated>

		<summary type="html">&lt;p&gt;Fix error message per edit request&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
function p._error( error_str )&lt;br /&gt;
    return &amp;#039;[[Category:Duration with input error]]&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;Error in Module:Duration: &amp;#039; .. error_str .. &amp;#039;&amp;lt;/strong&amp;gt;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame, {wrappers = {&amp;#039;Template:Duration&amp;#039;, &amp;#039;Template:Duration/sandbox&amp;#039;}})&lt;br /&gt;
	local tmp = args.duration or args[1] or &amp;#039;&amp;#039;&lt;br /&gt;
	local duration = {}&lt;br /&gt;
	if tonumber(args[1]) or args[2] or args[3] then&lt;br /&gt;
		if args[4] then return p._error(&amp;#039;Parameter number 4 should not be specified&amp;#039;) end&lt;br /&gt;
		if not args[1] or args[1] == &amp;#039;&amp;#039; then&lt;br /&gt;
			duration = {args[2] or 0, args[3] or 0}&lt;br /&gt;
		else&lt;br /&gt;
			duration = {args[1], args[2] or 0, args[3] or 0}&lt;br /&gt;
		end&lt;br /&gt;
		tmp = nil&lt;br /&gt;
		for k, v in ipairs(duration) do&lt;br /&gt;
			duration[k] = tonumber(v)&lt;br /&gt;
			if not duration[k] then return p._error(&amp;#039;Invalid values&amp;#039;) end&lt;br /&gt;
		end&lt;br /&gt;
	elseif args.h or args.m or args.s then&lt;br /&gt;
		if not args.h or args.h == &amp;#039;&amp;#039; then&lt;br /&gt;
			duration = {args.m or 0, args.s or 0}&lt;br /&gt;
		else&lt;br /&gt;
			duration = {args.h, args.m or 0, args.s or 0}&lt;br /&gt;
		end&lt;br /&gt;
		tmp = nil&lt;br /&gt;
		for k, v in ipairs(duration) do&lt;br /&gt;
			duration[k] = tonumber(v)&lt;br /&gt;
			if not duration[k] then return p._error(&amp;#039;Invalid values&amp;#039;) end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		if mw.ustring.find(tmp, &amp;#039;class=&amp;quot;duration&amp;quot;&amp;#039;, 1, yes) then return tmp end -- if there is already a microformat, don&amp;#039;t do anything&lt;br /&gt;
		duration = mw.text.split(mw.ustring.match(tmp, &amp;#039;%d*:?%d+:%d+%.?%d*&amp;#039;) or &amp;#039;&amp;#039;, &amp;#039;:&amp;#039;) -- split into table&lt;br /&gt;
		if duration[4] then return p._error(&amp;#039;Maximum of two colons allowed&amp;#039;) end&lt;br /&gt;
		for k, v in ipairs(duration) do duration[k] = tonumber(v) or 0 end -- convert values to numbers&lt;br /&gt;
	end&lt;br /&gt;
	if duration[3] then&lt;br /&gt;
		if (duration[1] + duration[2] + duration[3]) == 0 then return nil end&lt;br /&gt;
		if (duration[1] ~= math.ceil(duration[1])) or (duration[2] ~= math.ceil(duration[2])) then return p._error(&amp;#039;Hours and minutes values must be integers&amp;#039;) end&lt;br /&gt;
		if duration[3] &amp;gt;= 60 then return p._error(&amp;#039;Seconds value must be less than 60&amp;#039;) end&lt;br /&gt;
		if duration[2] &amp;gt;= 60 then return p._error(&amp;#039;Minutes value must be less than 60 if hours value is specified&amp;#039;) end&lt;br /&gt;
		if duration[2] &amp;lt; 10 then duration[2] = &amp;#039;0&amp;#039;..duration[2] end -- zero padding&lt;br /&gt;
		if duration[3] &amp;lt; 10 then duration[3] = &amp;#039;0&amp;#039;..duration[3] end&lt;br /&gt;
		duration = &amp;#039;&amp;lt;span class=&amp;quot;duration&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;h&amp;quot;&amp;gt;&amp;#039; .. duration[1] .. &amp;#039;&amp;lt;/span&amp;gt;:&amp;lt;span class=&amp;quot;min&amp;quot;&amp;gt;&amp;#039; .. duration[2] .. &amp;#039;&amp;lt;/span&amp;gt;:&amp;lt;span class=&amp;quot;s&amp;quot;&amp;gt;&amp;#039; .. duration[3] .. &amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
	elseif duration[2] then&lt;br /&gt;
		if (duration[1] + duration[2]) == 0 then return nil end&lt;br /&gt;
		if duration[1] ~= math.ceil(duration[1]) then return p._error(&amp;#039;Hours and minutes values must be integers&amp;#039;) end&lt;br /&gt;
		if duration[2] &amp;gt;= 60 then return p._error(&amp;#039;Seconds value must be less than 60&amp;#039;) end&lt;br /&gt;
		if duration[2] &amp;lt; 10 then duration[2] = &amp;#039;0&amp;#039;..duration[2] end -- zero padding&lt;br /&gt;
		duration = &amp;#039;&amp;lt;span class=&amp;quot;duration&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;min&amp;quot;&amp;gt;&amp;#039; .. duration[1] .. &amp;#039;&amp;lt;/span&amp;gt;:&amp;lt;span class=&amp;quot;s&amp;quot;&amp;gt;&amp;#039; .. duration[2] .. &amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		duration = &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if tmp and tmp ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		if duration ~= &amp;#039;&amp;#039; then tmp = mw.ustring.gsub(tmp, &amp;#039;%d*:?%d+:%d+%.?%d*&amp;#039;, duration, 1) else tmp = tmp .. &amp;#039; [[Category:Duration without hAudio microformat]]&amp;#039; end&lt;br /&gt;
	else&lt;br /&gt;
		if duration ~= &amp;#039;&amp;#039; then tmp = duration end&lt;br /&gt;
	end&lt;br /&gt;
	return tmp&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>wikipedia&gt;Pppery</name></author>
	</entry>
</feed>