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.

Geen bewerkingssamenvatting
Geen bewerkingssamenvatting
Regel 12: Regel 12:
local lastDigit = string.sub( num, -1)
local lastDigit = string.sub( num, -1)
local numeralsWithDeSuffix1 = { "2", "3", "4", "5", "6", "7", "9" }
local numeralsWithDeSuffix1 = { "2", "3", "4", "5", "6", "7", "9" }
for _,v in ipairs( hasDeSuffix1 ) do
for _,v in ipairs( numeralsWithDeSuffix1 ) do
if lastDigit == v then
if lastDigit == v then
return num .. "de"
return num .. "de"
Regel 19: Regel 19:


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

Versie van 19 sep 2025 10:03

Module:Ordinals




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

2de

3de

8ste

10de

11de

8345de


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 lastDigit == 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