Semantic MediaWikiDit bericht verdwijnt nadat alle relevante taken zijn afgerond.

Er is één onvoltooide of openstaande taak, die nodig is om het bijwerken van Semantic MediaWiki te voltooien. Een beheerder of gebruiker met voldoende rechten kan deze uitvoeren. Dit moet worden gedaan voordat nieuwe gegevens worden toegevoegd om tegenstrijdigheden te voorkomen.

Module:Ordinals




{{#invoke:Ordinals|convertNumberToOrdinal |num=2 }}

2de

3de

8ste

10de

11de

8345ste


local p = {}

p.convertNumberToOrdinal = function( frame )
	local num = frame.args.num or nil
	if num == nil then return "" end

	num = mw.text.trim( num )
	if num == "1" then return "1ste" end
	if num == "8" then return "8ste" end

	-- do 2-9 first
	local lastDigit = string.sub( num, -1)
	local numeralsWithDeSuffix1 = { "2", "3", "4", "5", "6", "7", "9" }
	for _,v in ipairs( numeralsWithDeSuffix1 ) do
		if num == v then
			return num .. "de"
		end
	end

	local lastTwoDigits = string.sub( num, -2)
	local numeralsWithDeSuffix2 = { "10", "11", "12", "13", "14", "15", "16", "17", "18", "19" }
	
	for _,v in ipairs( numeralsWithDeSuffix2 ) do
		if lastTwoDigits == v then
			return num .. "de"
		end
	end
	
	-- else
	return num .. "ste"

	-- 1ste, 11de, 21ste, 31ste, 101ste
	-- 8ste, 18de, 28ste

	-- similar 
	-- 2de, 12de, 22ste, 32ste, etc.
	-- 3rde, 13rde, 23ste, 33ste, ...
	-- 4de, 14de, 24ste, ...
	-- 5de, 15de, 25ste, ...
	-- 6de, 16de, 26ste, ...
	-- 7de, 17de, 27ste, ...
	-- 9de, 19de, 29ste
	-- 10de, 20ste, 21ste
end

return p