<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FKid116%2FDates</id>
	<title>Module:Sandbox/Kid116/Dates - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FKid116%2FDates"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Kid116/Dates&amp;action=history"/>
	<updated>2026-04-21T02:07:21Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Sandbox/Kid116/Dates&amp;diff=145667&amp;oldid=prev</id>
		<title>imported&gt;Kid116 at 10:50, 28 December 2017</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Kid116/Dates&amp;diff=145667&amp;oldid=prev"/>
		<updated>2017-12-28T10:50:16Z</updated>

		<summary type="html">&lt;p&gt;&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;
function p.Dates (frame)&lt;br /&gt;
	input = mw.text.trim(frame.args[1])&lt;br /&gt;
	input = &amp;quot; &amp;quot; .. input .. &amp;quot; &amp;quot;&lt;br /&gt;
	xformat = frame.args.format or 0&lt;br /&gt;
	xsuffix = frame.args.suffix or 0&lt;br /&gt;
	&lt;br /&gt;
	hasDate = 0&lt;br /&gt;
	hasMonth = 0&lt;br /&gt;
	hasYear = 0&lt;br /&gt;
	&lt;br /&gt;
	year = 0&lt;br /&gt;
	month = 0&lt;br /&gt;
	xdate = 0&lt;br /&gt;
	&lt;br /&gt;
	specialSuffix = 0&lt;br /&gt;
	&lt;br /&gt;
	ly = 0&lt;br /&gt;
	&lt;br /&gt;
	valid = 1&lt;br /&gt;
	&lt;br /&gt;
	txt = &amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	a = 0&lt;br /&gt;
	b = 0&lt;br /&gt;
	&lt;br /&gt;
	p.yr ()&lt;br /&gt;
	&lt;br /&gt;
	if hasYear~=0 then&lt;br /&gt;
		if input:find (&amp;quot;%d%d%p%d%d%p%d%d%d%d&amp;quot;) or input:find (&amp;quot;%d%d%d%d%p%d%d%p%d%d&amp;quot;) then&lt;br /&gt;
			p.isoType ()&lt;br /&gt;
		else&lt;br /&gt;
			p.Monthss ()&lt;br /&gt;
			p.Date ()&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		p.Monthss ()&lt;br /&gt;
		if hasMonth~=0 then &lt;br /&gt;
			p.Date ()&lt;br /&gt;
		else&lt;br /&gt;
			if input:find (&amp;quot;%s%d%d%s&amp;quot;) then&lt;br /&gt;
				if input:find (&amp;quot;AD&amp;quot;) or input:find (&amp;quot;BC&amp;quot;) or input:find (&amp;quot;CE&amp;quot;) or input:find (&amp;quot;BCE&amp;quot;) then&lt;br /&gt;
					year = tonumber(string.sub(input, input:find (&amp;quot;%s%d%d%s&amp;quot;)+1, input:find (&amp;quot;%s%d%d%s&amp;quot;)+2))&lt;br /&gt;
					a = 1&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				valid = 0&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if hasYear then&lt;br /&gt;
		p.leapYear ()&lt;br /&gt;
	end&lt;br /&gt;
	p.validation()&lt;br /&gt;
	&lt;br /&gt;
	if a == 1 then valid = 1 end&lt;br /&gt;
&lt;br /&gt;
	if valid ~= 0 then &lt;br /&gt;
		if xsuffix == 0 then&lt;br /&gt;
			if input:find (&amp;quot;AD&amp;quot;) or input:find (&amp;quot;BC&amp;quot;) or input:find (&amp;quot;CE&amp;quot;) or input:find (&amp;quot;BCE&amp;quot;) then&lt;br /&gt;
				if year ~= 0 then&lt;br /&gt;
					if input:find (&amp;quot;AD&amp;quot;) then xsuffix = &amp;quot;AD&amp;quot; end &lt;br /&gt;
					if input:find (&amp;quot;BC&amp;quot;) then xsuffix = &amp;quot;BE&amp;quot; end &lt;br /&gt;
					if input:find (&amp;quot;CE&amp;quot;) then xsuffix = &amp;quot;CE&amp;quot; end &lt;br /&gt;
					if input:find (&amp;quot;BCE&amp;quot;) then xsuffix = &amp;quot;BCE&amp;quot; end &lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end	&lt;br /&gt;
		if xsuffix ~= 0 then&lt;br /&gt;
			p.suffixes ()&lt;br /&gt;
		else&lt;br /&gt;
			if xformat == 0 then&lt;br /&gt;
				xformat = &amp;quot;dmy&amp;quot;&lt;br /&gt;
				if input:find (&amp;quot;,&amp;quot;) then xformat = &amp;quot;mdy&amp;quot; end&lt;br /&gt;
				if input:find (&amp;quot;-&amp;quot;) or input:find (&amp;quot;/&amp;quot;) then xformat = &amp;quot;iso&amp;quot; end&lt;br /&gt;
			end&lt;br /&gt;
			if xdate == 0 and month == 0 and year ~= 0 then xformat = &amp;quot;year&amp;quot; end&lt;br /&gt;
			if xdate ~= 0 and month == 0 and year ~= 0 then xformat = &amp;quot;year&amp;quot; end&lt;br /&gt;
			p.formats ()&lt;br /&gt;
		end	&lt;br /&gt;
		if specialSuffix then&lt;br /&gt;
			p.sSuffixes ()&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		txt = &amp;quot;Invalid entry. &amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return txt .. &amp;quot; &amp;quot;&lt;br /&gt;
end&lt;br /&gt;
function p.yr ()&lt;br /&gt;
	if input:find (&amp;quot;%s%d%d%d%s&amp;quot;) then&lt;br /&gt;
		hasYear = 1&lt;br /&gt;
		year = string.sub(input, input:find (&amp;quot;%s%d%d%d%s&amp;quot;) + 1, input:find (&amp;quot;%s%d%d%d%s&amp;quot;) + 3)&lt;br /&gt;
	end&lt;br /&gt;
	if input:find (&amp;quot;%s%d%d%d%d%s&amp;quot;) then&lt;br /&gt;
		hasYear = 1&lt;br /&gt;
		year = string.sub(input, input:find (&amp;quot;%s%d%d%d%d%s&amp;quot;) + 1, input:find (&amp;quot;%s%d%d%d%d%s&amp;quot;) + 4)&lt;br /&gt;
	end&lt;br /&gt;
	if input:find (&amp;quot;%p%d%d%d%d%s&amp;quot;) then&lt;br /&gt;
		hasYear = 1&lt;br /&gt;
		year = string.sub(input, input:find (&amp;quot;%p%d%d%d%d%s&amp;quot;) + 1, input:find (&amp;quot;%p%d%d%d%d%s&amp;quot;) + 4)&lt;br /&gt;
	end&lt;br /&gt;
	if input:find (&amp;quot;%s%d%d%d%d%p&amp;quot;) then&lt;br /&gt;
		hasYear = 1&lt;br /&gt;
		year = string.sub(input, input:find (&amp;quot;%s%d%d%d%d%p&amp;quot;) + 1, input:find (&amp;quot;%s%d%d%d%d%p&amp;quot;) + 4)&lt;br /&gt;
	end&lt;br /&gt;
	year = tonumber(year)&lt;br /&gt;
end&lt;br /&gt;
function p.sSuffix()&lt;br /&gt;
	if input:find (&amp;quot;uncertain&amp;quot;) or input:find (&amp;quot;sometime&amp;quot;) or input:find (&amp;quot;around&amp;quot;) then&lt;br /&gt;
		if input:find (&amp;quot;uncertain who&amp;quot;) then&lt;br /&gt;
			specialSuffix = 2&lt;br /&gt;
		else&lt;br /&gt;
			specialSuffix = 1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if input:find (&amp;quot;lord&amp;quot;) and input:find (&amp;quot;year&amp;quot;) then&lt;br /&gt;
		specialSuffix = 3&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
function p.isoType()&lt;br /&gt;
	if input:find (&amp;quot;%d%d%p%d%d%p%d%d%d%d&amp;quot;) then&lt;br /&gt;
		temp1 = tonumber(string.sub(input, input:find (&amp;quot;%d%d%p%d%d%p%d%d%d%d&amp;quot;), input:find (&amp;quot;%d%d%p%d%d%p%d%d%d%d&amp;quot;) + 1))&lt;br /&gt;
		temp2 = tonumber(string.sub(input, input:find (&amp;quot;%d%d%p%d%d%p%d%d%d%d&amp;quot;) + 3, input:find (&amp;quot;%d%d%p%d%d%p%d%d%d%d&amp;quot;) + 4))&lt;br /&gt;
	end	&lt;br /&gt;
	if input:find (&amp;quot;%d%d%d%d%p%d%d%p%d%d&amp;quot;) then&lt;br /&gt;
		temp1 = tonumber(string.sub(input, input:find (&amp;quot;%d%d%d%d%p%d%d%p%d%d&amp;quot;) + 5, input:find (&amp;quot;%d%d%d%d%p%d%d%p%d%d&amp;quot;) + 6))&lt;br /&gt;
		temp2 = tonumber(string.sub(input, input:find (&amp;quot;%d%d%d%d%p%d%d%p%d%d&amp;quot;) + 8, input:find (&amp;quot;%d%d%d%d%p%d%d%p%d%d&amp;quot;) + 9))&lt;br /&gt;
	end	&lt;br /&gt;
	if temp1 &amp;lt; 13 and temp2 &amp;gt; 12 then&lt;br /&gt;
		month = temp1&lt;br /&gt;
		xdate = temp2&lt;br /&gt;
	end&lt;br /&gt;
	if temp1 &amp;gt; 12 and temp2 &amp;lt; 13 then&lt;br /&gt;
		month = temp2&lt;br /&gt;
		xdate = temp1&lt;br /&gt;
	end&lt;br /&gt;
	if temp1 &amp;gt; 31 and temp2 &amp;gt; 31 then&lt;br /&gt;
		valid = 0&lt;br /&gt;
	end&lt;br /&gt;
	if temp1 &amp;lt; 13 and temp2 &amp;lt; 13 then&lt;br /&gt;
		month = temp2&lt;br /&gt;
		xdate = temp1&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
function p.Monthss ()&lt;br /&gt;
	Months = {&lt;br /&gt;
			  &amp;quot;January&amp;quot;,&lt;br /&gt;
			  &amp;quot;February&amp;quot;,&lt;br /&gt;
			  &amp;quot;March&amp;quot;,&lt;br /&gt;
			  &amp;quot;April&amp;quot;,&lt;br /&gt;
			  &amp;quot;May&amp;quot;,&lt;br /&gt;
			  &amp;quot;June&amp;quot;,&lt;br /&gt;
			  &amp;quot;July&amp;quot;,&lt;br /&gt;
			  &amp;quot;August&amp;quot;,&lt;br /&gt;
			  &amp;quot;September&amp;quot;,&lt;br /&gt;
			  &amp;quot;October&amp;quot;,&lt;br /&gt;
			  &amp;quot;November&amp;quot;,&lt;br /&gt;
			  &amp;quot;December&amp;quot;&lt;br /&gt;
	   	     }&lt;br /&gt;
	for i = 1, 12 do&lt;br /&gt;
		if input:find (Months[i]) then&lt;br /&gt;
			month = i&lt;br /&gt;
			hasMonth = 1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
function p.Date ()&lt;br /&gt;
	if input:find (&amp;quot;%s%d%a%a%s&amp;quot;) or input:find (&amp;quot;%s%d%d%a%a%s&amp;quot;) then &lt;br /&gt;
		if input:find (&amp;quot;%s%d%a%a%s&amp;quot;) then&lt;br /&gt;
			xdate = tonumber(string.sub(input, input:find (&amp;quot;%s%d%a%a%s&amp;quot;) + 1, input:find (&amp;quot;%s%d%a%a%s&amp;quot;) + 1)) &lt;br /&gt;
		end&lt;br /&gt;
		if input:find (&amp;quot;%s%d%d%a%a%s&amp;quot;) then&lt;br /&gt;
			xdate = tonumber(string.sub(input, input:find (&amp;quot;%s%d%d%a%a%s&amp;quot;) + 1, input:find (&amp;quot;%s%d%d%a%a%s&amp;quot;) + 2)) &lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		if input:find (&amp;quot;%s%d%d%s&amp;quot;) or input:find (&amp;quot;%s%d%d%p&amp;quot;) then&lt;br /&gt;
			if input:find (&amp;quot;%s%d%d%s&amp;quot;) and input:find (&amp;quot;%s%d%d%p&amp;quot;) then&lt;br /&gt;
				if input:find (&amp;quot;%s%d%d%s&amp;quot;) &amp;lt; input:find (&amp;quot;%s%d%d%p&amp;quot;) then&lt;br /&gt;
					xdate = tonumber(string.sub(input, input:find (&amp;quot;%s%d%d%s&amp;quot;) + 1, input:find (&amp;quot;%s%d%d%s&amp;quot;) + 2))&lt;br /&gt;
				else&lt;br /&gt;
					xdate = tonumber(string.sub(input, input:find (&amp;quot;%s%d%d%p&amp;quot;) + 1, input:find (&amp;quot;%s%d%d%p&amp;quot;) + 2))&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				if input:find (&amp;quot;%s%d%d%s&amp;quot;) then &lt;br /&gt;
					xdate = tonumber(string.sub(input, input:find (&amp;quot;%s%d%d%s&amp;quot;) + 1, input:find (&amp;quot;%s%d%d%s&amp;quot;) + 2))&lt;br /&gt;
				else&lt;br /&gt;
					xdate = tonumber(string.sub(input, input:find (&amp;quot;%s%d%d%p&amp;quot;) + 1, input:find (&amp;quot;%s%d%d%p&amp;quot;) + 2))&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if xdate &amp;gt; 31 then valid = 0 end&lt;br /&gt;
			if xdate then hasDate = 1 end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end	&lt;br /&gt;
function p.leapYear ()&lt;br /&gt;
	if year % 100 ~= 0 and year % 4 == 0 then&lt;br /&gt;
		ly = 1&lt;br /&gt;
	else&lt;br /&gt;
		if year % 400 == 0 then&lt;br /&gt;
			ly = 1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
function p.validation ()&lt;br /&gt;
	if hasYear == 0 and hasMonth == 0 then valid = 0 end&lt;br /&gt;
	if month &amp;gt; 12 then valid = 0 end&lt;br /&gt;
	if month == 4 then &lt;br /&gt;
		if xdate &amp;gt; 30 then&lt;br /&gt;
			valid = 0&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if month == 6 then &lt;br /&gt;
		if xdate &amp;gt; 30 then&lt;br /&gt;
			valid = 0&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if month == 9 then &lt;br /&gt;
		if xdate &amp;gt; 30 then&lt;br /&gt;
			valid = 0&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if month == 11 then &lt;br /&gt;
		if xdate &amp;gt; 30 then&lt;br /&gt;
			valid = 0&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if month == 2 then &lt;br /&gt;
		if ly == 1 then &lt;br /&gt;
			if xdate &amp;gt; 29 then&lt;br /&gt;
				valid = 0&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			if xdate &amp;gt; 28 then&lt;br /&gt;
				valid = 0&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if xdate then hasDate = 1 else hasDate = 0 end&lt;br /&gt;
end&lt;br /&gt;
function p.formats ()&lt;br /&gt;
	Months = {&lt;br /&gt;
			  &amp;quot;January&amp;quot;,&lt;br /&gt;
			  &amp;quot;February&amp;quot;,&lt;br /&gt;
			  &amp;quot;March&amp;quot;,&lt;br /&gt;
			  &amp;quot;April&amp;quot;,&lt;br /&gt;
			  &amp;quot;May&amp;quot;,&lt;br /&gt;
			  &amp;quot;June&amp;quot;,&lt;br /&gt;
			  &amp;quot;July&amp;quot;,&lt;br /&gt;
			  &amp;quot;August&amp;quot;,&lt;br /&gt;
			  &amp;quot;September&amp;quot;,&lt;br /&gt;
			  &amp;quot;October&amp;quot;,&lt;br /&gt;
			  &amp;quot;November&amp;quot;,&lt;br /&gt;
			  &amp;quot;December&amp;quot;&lt;br /&gt;
	   	     }&lt;br /&gt;
	if xformat == &amp;quot;dmy&amp;quot; then&lt;br /&gt;
			if hasDate ~= 0 then &lt;br /&gt;
				txt = txt .. xdate .. &amp;quot; &amp;quot; &lt;br /&gt;
			end&lt;br /&gt;
			if hasMonth ~= 0 then&lt;br /&gt;
				txt = txt .. Months[month] .. &amp;quot; &amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
			if hasYear ~= 0 then&lt;br /&gt;
				txt = txt .. year &lt;br /&gt;
			end&lt;br /&gt;
	end&lt;br /&gt;
	if xformat == &amp;quot;mdy&amp;quot; then&lt;br /&gt;
		if month ~= 0 then&lt;br /&gt;
			txt = txt .. Months[month] .. &amp;quot; &amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		if xdate ~= 0 then &lt;br /&gt;
			txt = txt .. xdate &lt;br /&gt;
		end&lt;br /&gt;
		if year ~= 0 then&lt;br /&gt;
			txt = txt .. &amp;quot;, &amp;quot; .. year &lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if xformat == &amp;quot;iso&amp;quot; then&lt;br /&gt;
		txt = txt .. year  &lt;br /&gt;
		if month &amp;lt; 10 then &lt;br /&gt;
			month = &amp;quot;0&amp;quot; .. month&lt;br /&gt;
			txt = txt .. &amp;quot;-&amp;quot; .. month &lt;br /&gt;
		else&lt;br /&gt;
			txt =  txt .. &amp;quot;-&amp;quot; .. month &lt;br /&gt;
		end&lt;br /&gt;
		if xdate &amp;lt; 10 then &lt;br /&gt;
			xdate = &amp;quot;0&amp;quot; .. xdate&lt;br /&gt;
			txt = txt .. &amp;quot;-&amp;quot; .. xdate&lt;br /&gt;
		else&lt;br /&gt;
			txt = txt .. &amp;quot;-&amp;quot; .. xdate&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if xformat == &amp;quot;year&amp;quot; then&lt;br /&gt;
		if hasYear then&lt;br /&gt;
			txt = txt .. year .. &amp;quot; &amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			txt = &amp;quot;More information required. &amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
function p.suffixes ()&lt;br /&gt;
	if xsuffix == &amp;quot;AD&amp;quot; then&lt;br /&gt;
		txt = year .. &amp;quot; AD &amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if xsuffix == &amp;quot;BC&amp;quot; then&lt;br /&gt;
		txt = &amp;quot;BC &amp;quot; .. year .. &amp;quot; &amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if xsuffix == &amp;quot;CE&amp;quot; then&lt;br /&gt;
		txt = year .. &amp;quot; CE &amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if xsuffix == &amp;quot;BCE&amp;quot; then&lt;br /&gt;
		txt = year .. &amp;quot; BCE &amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if specialSuffix == 1 then&lt;br /&gt;
		txt = &amp;quot;c. &amp;quot; .. txt&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
function p.sSuffixes ()&lt;br /&gt;
	if specialSuffix == 2 then&lt;br /&gt;
		txt = txt .. &amp;quot; (uncertain who was present)&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if specialSuffix == 3 then&lt;br /&gt;
		txt = &amp;quot;&amp;quot; .. year .. &amp;quot; AD&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Kid116</name></author>
	</entry>
</feed>