Module:Zandbak/Hole1988
Uiterlijk
Documentatie voor deze module kan aangemaakt worden op de volgende pagina: Module:Zandbak/Hole1988/doc
local p = {}
function nul(nr)
if nr == nil then
return 0
else
return nr
end
end
function parse(time)
if(time == nil or string.len(time) == 0) then return 0 end
s, h = string.match(time, "(%d+),(%d+)")
m = string.match(time, "(%d+)%.")
m = nul(m)
s = nul(s)
h = nul(h)
return ((m*60)+s) .. "." .. h
end
function p.mannen(frame)
a = parse(frame.args[1])
b = parse(frame.args[2])/2
c = parse(frame.args[3])/3
d = parse(frame.args[4])/10
e = parse(frame.args[5])/20
return string.format("%.3f",a+b+c+d+e)
end
function p.vrouwen(frame)
a = parse(frame.args[1])
b = parse(frame.args[2])/2
c = parse(frame.args[3])/3
d = parse(frame.args[4])/6
e = parse(frame.args[5])/10
return string.format("%.3f",a+b+c+d+e)
end
function p.totaal(frame)
a = parse(frame.args[1])
b = parse(frame.args[2])/2
c = parse(frame.args[3])/3
d = parse(frame.args[4])/6
e = parse(frame.args[5])/10
t = a+b+c+d+e
a = parse(frame.args[1])
b = parse(frame.args[2])/2
c = parse(frame.args[3])/3
d = parse(frame.args[4])/10
e = parse(frame.args[5])/20
return string.format("%.3f",t+a+b+c+d+e)
end
punt = {}
punt.V = 0
punt.M = 0
function creattable(t,a,g)
table.insert(t,"{| class=\"wikitable\"\n")
if g == "V" then table.insert(t,"|+ vrouwen\n")
elseif g == "M" then table.insert(t,"|+ mannen\n")
end
table.insert(t,"!Afstand || Schaatser || Land || Tijd || Datum\n")
local d = {}
for key,value in pairs(a) do table.insert(d, key) end
table.sort(d)
for i,n in ipairs(d) do
if (g == "V" and n == 10000) or (g == "M" and n == 3000) then
table.insert(t,"|- bgcolor=FF4500\n")
else
table.insert(t,"|-\n")
if a[n].Tijd then
punt[g] = punt[g]+(parse(a[n].Tijd)/(n/500))
end
end
table.insert(t,"| "..n.." m || ")
if a[n].Naam then table.insert(t,a[n].Naam) end
table.insert(t," || ")
if a[n].Land then table.insert(t,"{{"..a[n].Land.."}}") end
table.insert(t," || ")
if a[n].Tijd then table.insert(t,a[n].Tijd) end
table.insert(t," || ")
if a[n].Datum then table.insert(t,a[n].Datum) end
table.insert(t,"\n")
end
table.insert(t,"|-\n|colspan=\"3\"| '''puntentotaal\n|colspan=\"2\"| '''"..string.format("%.3f",punt[g]).."\n|}\n")
return t
end
function p.main(frame)
local Args = frame.args
local t = {}
local r = {}
r.V = {}
r.M = {}
for key,value in pairs(Args) do
g,a,p = string.match(key, "(.*)_(.*)_(.*)")
if g and a and p then
if r[g][a] == nil then r[g][a] = {} end
r[g][a][p] = value
end
end
table.insert(t,"{|\n|\n")
t = creattable(t,r.V,"V")
table.insert(t,"{| width=\"50px\" |\n|\n")
t = creattable(t,r.M,"M")
table.insert(t,"|-\n|colspan=\"2\"| '''gezamenlijk puntentotaal || '''"..string.format("%.3f",punt.V+punt.M).."\n|}")
return table.concat(t)
end
return p