Modul:Trav
Dokumentation [visa] [redigera] [historik] [rensa sidcachen]
Funktioner i modulen
redigeratravtidskonverter
redigeraFunktion
redigeraFunktionen översätter en "trav-tid" från amerikanskt format till icke-amerikanskt format och används av mallen {{TravtidUSA}}
Anrop
redigeraParametrar
redigeralocal p = {}
p.travtidskonverter = function(frame)
-- översätter tid från mm:ss.f till MM.SS,DD där
-- mm är antal minuter i indatatiden
-- ss är antal sekunder i indatatiden
-- f är antal femtedels sekunder i indatatiden
-- MM är antal minuter i utdatatiden
-- SS är antal sekunder i utdatatiden
-- DD är antal hundradels sekunder i utdatatiden
local tid = frame.args['tid'] or '0:00.0'
local banlangd_kilometer = 1.609344
if frame.args['meter'] and frame.args['meter'] ~= '' then
banlangd_kilometer = frame.args['meter']/1000
end
local minut_sekund_separator = frame.args['minut_sekund_separator'] or '.'
local decimaltecken = frame.args['decimaltecken'] or ','
local antal_decimaler = frame.args['antal_decimaler'] or 1
local minut, sekund, femtedelssekund = string.match(tid..'.0', '(%d+)%D(%d+)%D(%d)')
local sekunder = 60*tonumber(minut)+tonumber(sekund)+tonumber(femtedelssekund)/5
local nytid = math.floor(sekunder/banlangd_kilometer*10^antal_decimaler+0.9999)/10^antal_decimaler
local nyminut = math.floor(nytid/60)
local nysekund = nytid - 60*nyminut
local DD = ''
if nysekund == math.floor(nysekund) then DD = decimaltecken .. string.rep('0',antal_decimaler) end
nollutfyllnad_sekunder = ''
if nysekund < 10 then nollutfyllnad_sekunder = '0' end
res = nyminut .. minut_sekund_separator .. nollutfyllnad_sekunder .. string.gsub(nysekund,'%.',decimaltecken) .. DD
return res .. string.rep('0',antal_decimaler-string.len(string.match(res,decimaltecken .. '(.*)')))
end
return p