Module:DateThings
Jump to navigation
Jump to search
Documentation for this module may be created at Module:DateThings/doc
local p = {}
--Copied from https://stackoverflow.com/questions/1426954/split-string-in-lua
function mysplit(inputstr, sep)
if sep == nil then
sep = "%s"
end
local t = {}
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
table.insert(t, str)
end
return t
end
function trim (s)
return (string.gsub(s, "^%s*(.-)%s*$", "%1"))
end
function p.datesplit(frame)
InputSeparator = ","
OutputSeparator = "・"
InputText = frame.args[1]
DateList = mysplit(InputText,",")
OutputText = ""
OldYear = 0
OldMonth = 0
OldDay = 0
for i, v in ipairs(DateList) do
if i>1 then
OutputText = OutputText .. OutputSeparator
end
DateBits = mysplit(trim(DateList[i]),"-")
Year = DateBits[1]
Month = DateBits[2]
Day = DateBits[3]
ThisDate = os.time{ year = Year, month = Month, day = Day }
--OutputText = OutputText .. trim(DateList[i])
--OutputText = OutputText .. Year .. OutputSeparator .. Month .. OutputSeparator .. Day
if Year==OldYear then
if Month==OldMonth then
OutputText = OutputText .. Day --Only the day is different
else
OutputText = OutputText .. Month .. "-" .. Day --Day and month are different
end
else
--OutputText = OutputText .. Year .. "-" .. Month .. "-" .. Day --All three are different
OutputText = OutputText .. os.date("%Y-%m-%d %H:%M:%S", ThisDate)
end
OldYear = Year
OldMonth = Month
end
--OutputText = Separator .. InputText .. Separator
return OutputText
end
return p