Modul:Årstall

Fra Wikipedia, den frie encyklopedi
Moduldokumentasjon

Formål[rediger kilde]

Denne modulen returnerer årstall, tiår og århundre basert på to argumenter. Første argument er et årstall (eller århundre), og andre argument er hvor mange år/tiår/århundrer det skal legges til eller trekkes fra. Begge argumenter er påkrevde.

Funksjoner[rediger kilde]

  • aar : Returnerer årstall
  • tiaar : Returnerer tiår
  • aarhundre : Returnerer århundre

Eksempler[rediger kilde]

År
* {{#invoke:Årstall|aar|2014|-5}}
* {{#invoke:Årstall|aar|5|-10}}
* {{#invoke:Årstall|aar|2 f.Kr.|5}}
* {{#invoke:Årstall|aar|101 f.Kr.|10}}

Resultat:

  • 2009
  • 6 f.Kr.
  • 4
  • 91 f.Kr.
Tiår
* {{#invoke:Årstall|tiaar|1941|0}}
* {{#invoke:Årstall|tiaar|1949|0}}
* {{#invoke:Årstall|tiaar|1941|-2}}
* {{#invoke:Årstall|tiaar|1949|2}}
* {{#invoke:Årstall|tiaar|3|-1}}
* {{#invoke:Årstall|tiaar|3|1}}

Resultat:

  • 1940-årene
  • 1940-årene
  • 1920-årene
  • 1960-årene
  • 0-årene f.Kr.
  • 10-årene
Århundre
Denne kan også ta innputt på formen «X. århundre» og «X. århundre f.Kr.», i tillegg til årstall.
* {{#invoke:Årstall|aarhundre|2001|0}}
* {{#invoke:Årstall|aarhundre|2001|-1}}
* {{#invoke:Årstall|aarhundre|79|1}}
* {{#invoke:Årstall|aarhundre|79|-1}}
* {{#invoke:Årstall|aarhundre|1. århundre|-1}}
* {{#invoke:Årstall|aarhundre|2. århundre f.Kr.|-2}}

Resultat:

  • 21. århundre
  • 20. århundre
  • 2. århundre
  • 1. århundre f.Kr.
  • 1. århundre f.Kr.
  • 4. århundre f.Kr.

Brukes av[rediger kilde]

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 foeretter(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 århundre det er
local function aarhundre(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 tiaar(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 foeretter(frame.args[1], frame.args[2], " f.Kr.", "")
end

-- Printer århundre
function p.aarhundre(frame)
	local args = frame.args
	if string.sub(args[1], -17, -1) == ". århundre f.Kr." then
		return foeretter(fkr(string.sub(args[1], 1, -17) .. " f.Kr."), args[2], ". århundre f.Kr.", ". århundre")
	elseif string.sub(args[1], -11, -1) == ". århundre" then
		return foeretter(fkr(string.sub(args[1], 1, -11)), args[2], ". århundre f.Kr.", ". århundre")
	else
		return foeretter(aarhundre(fkr(args[1])), args[2], ". århundre f.Kr.", ". århundre")
	end
end

-- Printer tiår
function p.tiaar(frame)
	if tonumber(frame.args[1]) + tonumber(frame.args[2])*10 < 0 then
		return tiaar(frame.args[1]) + (tonumber(frame.args[2])+1)*-10 .. "-årene f.Kr."
	else
		return tiaar(frame.args[1]) + tonumber(frame.args[2])*10 .. "-årene"
	end
end

return p