Dokumentation [visa] [redigera] [historik] [rensa sidcachen]


Funktioner i modulen

redigera

travtidskonverter

redigera

Funktion

redigera

Funktionen översätter en "trav-tid" från amerikanskt format till icke-amerikanskt format och används av mallen {{TravtidUSA}}

Parametrar

redigera
local 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