Modul:Årstall

Fra Wikisida.no
Sideversjon per 22. feb. 2024 kl. 15:25 av Wikisida (diskusjon | bidrag) (Én sideversjon ble importert)
(diff) ← Eldre sideversjon | Nåværende sideversjon (diff) | Nyere sideversjon → (diff)
Hopp til navigering Hopp til søk

Formål

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

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

Eksempler

Å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


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