Module:Year sequence
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 i = 1, #a do
local year = a[i]
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
result = result .. prev
range = false
end
return result
end
return p