Module:Year sequence: Difference between revisions
Robertbaxter (talk | contribs) No edit summary |
Robertbaxter (talk | contribs) No edit summary |
||
Line 11: | Line 11: | ||
local prev = 0 | local prev = 0 | ||
local range = false | local range = false | ||
for year in a do | for year in pairs(a) do | ||
if year == prev + 1 then | if year == prev + 1 then | ||
if not range then | if not range then |
Revision as of 21:36, 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 pairs(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
result = result .. prev
range = false
end
return result
end
return p