<?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%2FMrSpecjal%2FDates</id>
	<title>Module:Sandbox/MrSpecjal/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%2FMrSpecjal%2FDates"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/MrSpecjal/Dates&amp;action=history"/>
	<updated>2026-04-21T07:47:44Z</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/MrSpecjal/Dates&amp;diff=145852&amp;oldid=prev</id>
		<title>imported&gt;MrSpecjal at 09:30, 8 November 2018</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/MrSpecjal/Dates&amp;diff=145852&amp;oldid=prev"/>
		<updated>2018-11-08T09:30: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;p = {}&lt;br /&gt;
&lt;br /&gt;
p.extractDate = function (frame)&lt;br /&gt;
	local date = frame.args.date or &amp;quot;invalid value&amp;quot;	&lt;br /&gt;
	local format = frame.args.format or &amp;quot;recognize format&amp;quot;&lt;br /&gt;
	local output = &amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	if(date == &amp;quot;invalid value&amp;quot;) then&lt;br /&gt;
		output = &amp;quot;Your input date is invalid&amp;quot;&lt;br /&gt;
		return output&lt;br /&gt;
	end&lt;br /&gt;
	local day, month, year = string.match(date, &amp;quot;(%d+) (%w+) (%d+)&amp;quot;)&lt;br /&gt;
	if day == nil then&lt;br /&gt;
		day = 1&lt;br /&gt;
	end&lt;br /&gt;
	if month == nil then&lt;br /&gt;
		month = Invalid&lt;br /&gt;
	end&lt;br /&gt;
	if year == nil then &lt;br /&gt;
		year = 2018&lt;br /&gt;
	end&lt;br /&gt;
	 &lt;br /&gt;
	output = &amp;quot;Year = &amp;quot; .. year .. &amp;quot;&amp;lt;br&amp;gt;Day = &amp;quot; .. day .. &amp;quot;&amp;lt;br&amp;gt;Month = &amp;quot;.. month&lt;br /&gt;
	&lt;br /&gt;
	return output&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.checkDate = function (frame)&lt;br /&gt;
	local us_mdY = frame.args.us_mdY&lt;br /&gt;
    local m, d, Y = us_mdY:match(&amp;quot;(%d+)/(%d+)/(%d+)&amp;quot;)&lt;br /&gt;
    local epoch = os.time{year=Y, month=m, day=d}&lt;br /&gt;
    local zeromdy = string.format(&amp;quot;%02d/%02d/%04d&amp;quot;, m, d, Y)&lt;br /&gt;
    return zeromdy == os.date(&amp;#039;%m/%d/%Y&amp;#039;, epoch)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
p.isValidDate = function (frame)&lt;br /&gt;
 local us_mdY = frame.args.us_mdY&lt;br /&gt;
  local m, d, y = us_mdY:match(&amp;quot;(%d+)/(%d+)/(%d+)&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  m, d, y = tonumber(m), tonumber(d), tonumber(y)&lt;br /&gt;
&lt;br /&gt;
  if d &amp;lt;= 0 or d &amp;gt; 31 or m &amp;lt;= 0 or m &amp;gt; 12 or y &amp;lt;= 0 then&lt;br /&gt;
    -- Cases that don&amp;#039;t make sense&lt;br /&gt;
    return false&lt;br /&gt;
  elseif m == 4 or m == 6 or m == 9 or m == 11 then &lt;br /&gt;
    -- Apr, Jun, Sep, Nov can have at most 30 days&lt;br /&gt;
    return d &amp;lt;= 30&lt;br /&gt;
  elseif m == 2 then&lt;br /&gt;
    -- Feb&lt;br /&gt;
    if y%400 == 0 or (y%100 ~= 0 and y%4 == 0) then&lt;br /&gt;
      -- if leap year, days can be at most 29&lt;br /&gt;
      return d &amp;lt;= 29&lt;br /&gt;
    else&lt;br /&gt;
      -- else 28 days is the max&lt;br /&gt;
      return d &amp;lt;= 28&lt;br /&gt;
    end&lt;br /&gt;
  else &lt;br /&gt;
    -- all other months can have at most 31 days&lt;br /&gt;
    return d &amp;lt;= 31&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;MrSpecjal</name></author>
	</entry>
</feed>