Modul:Årstal
Udseende
Dette Lua-modul bruges på ca. 2.100 sider, og derfor vil ændringer blive bemærket af mange. Vær venlig at afprøve enhver ændring i modulets /sandkasse eller /test-undersider, eller i din egen module sandkasse. Du bør også overveje at diskutere ændringer på diskussionssiden før du implementerer dem. |
Utilstrækkelig vejledning Dette modul bør have en (bedre) vejledning, helst med eksempler på anvendelse. Hvis andre moduler er nyere og/eller bedre, bør der henvises til dem. |
Brug
{{#invoke:Årstal|function_name}}
Dokumentationen ovenfor er transkluderet fra Modul:Årstal/dok. (redigér | historik) Brugere kan eksperimentere i dette moduls undersider sandkasse (opret | kopiér) og testcases (opret). Undersider til dette modul. |
local avrund = require('Modul:Math')._round
-- Inneholder PAGENAME/første argument «f.Kr.»?
local function fkr(s)
if string.match(s, " f.Kr.") then
return (tonumber(string.sub(s, 1, -7))*-1)+1
else
return tonumber(s)
end
end
-- Før eller etter Kristus
local function foer_efter(a, b, c, d)
if fkr(a) + b <= 0 then
return ((fkr(a) + b)*-1)+1 .. c
else
return fkr(a) + b .. d
end
end
-- Finner ut hvilket århundrede det er
local function aarhundrede(s)
if avrund(s, -2) >= tonumber(s) then
return avrund(s, -2)/100
else
return (avrund(s, -2)/100)+1
end
end
-- Finner ut hvilket tiår det er
local function aarti(s)
if avrund(s, -1) <= tonumber(s) then
return avrund(s, -1)
else
return avrund(s, -1)-10
end
end
local p = {}
-- Printer år
function p.aar(frame)
return foer_efter(frame.args[1], frame.args[2], " f.Kr.", "")
end
-- Printer århundre
function p.aarhundrede(frame)
local args = frame.args
if string.sub(args[1], -17, -1) == ". århundrede f.Kr." then
return foer_efter(fkr(string.sub(args[1], 1, -17) .. " f.Kr."), args[2], ". århundrede f.Kr.", ". århundrede")
elseif string.sub(args[1], -11, -1) == ". århundrede" then
return foer_efter(fkr(string.sub(args[1], 1, -11)), args[2], ". århundrede f.Kr.", ". århundrede")
else
return foer_efter(aarhundrede(fkr(args[1])), args[2], ". århundrede f.Kr.", ". århundrede")
end
end
-- Printer tiår
function p.aarti(frame)
if tonumber(frame.args[1]) + tonumber(frame.args[2])*10 < 0 then
return aarti(frame.args[1]) + (tonumber(frame.args[2])+1)*-10 .. "'erne f.Kr."
else
return aarti(frame.args[1]) + tonumber(frame.args[2])*10 .. "'erne"
end
end
return p