Module:Year sequence: Difference between revisions
Robertbaxter (talk | contribs) No edit summary |
Robertbaxter (talk | contribs) No edit summary |
||
Line 4: | Line 4: | ||
local args = frame.args or frame:getParent().args | local args = frame.args or frame:getParent().args | ||
local a = {} | local a = {} | ||
for year in string.gmatch( | for year in string.gmatch(args[1], "%d%d%d%d") do | ||
table.insert(a, tonumber(year)) | table.insert(a, tonumber(year)) | ||
end | end |
Revision as of 21:34, 21 December 2024
Documentation for this module may be created at Module:Year sequence/doc
local p = {}
function p.consolidate(frame)
local args = frame.args or frame:getParent().args
local a = {}
for year in string.gmatch(args[1], "%d%d%d%d") do
table.insert(a, tonumber(year))
end
table.sort(a)
local result = ""
local prev = 0
local range = false
for year in a do
if year == prev + 1 then
if not range then
result = result .. "–"
range = true
end
else
if range then
result = result .. prev
range = false
end
if result ~= "" then result = result .. ", " end
result = result .. year
end
prev = year
end
if range then
--[[RANGE ENDED WITH PREV]]--
result = result .. prev
range = false
end
return result
end
return p