Module:Sandbox/Angr pukhlya/2/sandbox: Difference between revisions

Content deleted Content added
No edit summary
No edit summary
Tags: Mobile edit Mobile web edit
Line 2:
 
p.date_formatting = function( frame )
-- Unpacking date in not iso-format
local date = frame.args.date or "Invalid entry"
local format = frame.args.format or ""
local year, day = string.match(date, "%D*(%d*)%D*(%d*)%D*")
if year ~= nil"" and day ~= nil"" then
if tonumber(day) > 31 then
day, year = year, day
end
end
months = {"January", "February", "March", "April", "May", "June", "July",
"August", "September", "October", "November", "December"},
["January"] = "01", ["February"] = "02", ["March"] = "03",
["April"] = "04", ["May"] = "05", ["June"] = "06", ["July"] = "07",
["August"] = "08", ["September"] = "09", ["October"] = "10",
["November"] = "11", ["December"] = "12"}
local k = nil
local month = nil""
for i = 1, #months do
k = string.find(date, months[i])
Line 28 ⟶ 34:
end
end
if day ~= "" and year ~= "" and month == "" and string.find(date, "[-,/]") ~= nil then
month = 0
day, month, year = string.match(date, "(%d+)[-, /](%d+)[-, /](%d+)")
local a, b, c = day, month, year
Line 47 ⟶ 52:
end
if (year == a and day == b) or (year == b and day == a) then
month = months[tonumber(c)]
elseif (year == b and day == c) or (year == c and day == b) then
month = months[a]
elseif (year == a and day == c) or (year == c and day == a) then
month = months[tonumber(b)]
else
day, month, year = a, months[tonumber(b)], c
end
end
--Formatting unpacked date
return "Day = " .. day .. "<br>" ..
local u_date = ""
if format == "mdy" then
u_date = month .. " " .. day .. ", " .. year
elseif format == "dmy" then
u_date = day .. " " .. month .. " " .. year
end
local ans = ""
if string.find(date, "(uncertain)") ~= nil or string.find(date, "around") ~= nil then
ans = "circa "
end
return ans .. "Day = " .. day .. "<br>" ..
"Month = " .. month .. "<br>" ..
"Year = " .. year