Module:Date
From SWGoH Wiki
Jump to navigationJump to searchDocumentation for this module may be created at Module:Date/doc
local p = {}
---****************---
-- Global Variables --
--******************--
-- Global Functions --
function trim(s)
return s:gsub("[%c%p%s]", "")
end
function split(str, pat)
local t = {} -- NOTE: use {n = 0} in Lua-5.0
local fpat = "(.-)" .. pat
local last_end = 1
local s, e, cap = str:find(fpat, 1)
while s do
if s ~= 1 or cap ~= "" then
table.insert(t,cap)
end
last_end = e+1
s, e, cap = str:find(fpat, last_end)
end
if last_end <= #str then
cap = str:sub(last_end)
table.insert(t, cap)
end
return t
end
-----------------------
-- Convert date --
function p.reformat(param)
rawDate = param.args.date
format = param.args.format
dateArray = split(rawDate, "-")
mo = tonumber(dateArray[1])
day = dateArray[2]
year = dateArray[3]
months = {
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'
}
if format == "MDY" then
return months[mo].." "..day..", "..year
elseif format == "YMD" then
return year.." "..months[mo].." "..day
elseif format == "DMY" then
return day.." "..months[mo].." "..year
else
return "Format incorrect"
end
end --END Function format
----------------------------------------------
-- Date Range --
function p.dateRange(param)
rawDate = param.args.date
type = param.args[1]
from = param.args.startDate
to = param.args.endDate
negative = {
[0]=12,
[-1]=11,
[-2]=20,
[-3]=9,
[-4]=8,
[-5]=7,
[-6]=6,
[-7]=5,
[-8]=4,
[-9]=3,
[-10]=2,
[-11]=1
}
if (type == "month") then
if (to == "today") then
to = os.date("*t")
end
if (from ~= "today") then
to.month = to.month - from
if (to.month < 1) then
to.month = negative[to.month]
to.year = to.year - 1
end
end
result = to.month.."-"..to.day.."-"..to.year
end
return result
end
return p