İçeriğe atla

Modül:Decade

Vikipedi, özgür ansiklopedi
Modül belgelemesi[gör] [değiştir] [geçmiş] [temizle]

Bu modül sayılara onluk ekleri ekler.

  • {{#invoke:Decade|decade|2020}} → 2020'ler
  • {{#invoke:Decade|decade|2010}} → 2010'lar
  • {{#invoke:Decade|decade|2000}} → 2000'ler
  • {{#invoke:Decade|decade|1990}} → 1990'lar
  • {{#invoke:Decade|decade|1880}} → 1880'ler
  • {{#invoke:Decade|decade|1770}} → 1770'ler
  • {{#invoke:Decade|decade|1660}} → 1660'lar
  • {{#invoke:Decade|decade|1550}} → 1550'ler
  • {{#invoke:Decade|decade|1440}} → 1440'lar
  • {{#invoke:Decade|decade|1220}} → 1220'ler
  • {{#invoke:Decade|decade|1110}} → 1110'lar
  • {{#invoke:Decade|decade|1000}} → 1000'ler
local p = {}

local yesno = require('Module:Yesno')

local suffixes = {
	"ler", "ler", "ler", "ler", "ler", "lar", "ler", "ler", "lar", [0] = "lar", [10] = "lar", [20] = "ler",
	[30] = "lar", [40] = "lar", [50] = "ler", [60] = "lar", [70] = "ler", [80] = "ler", [90] = "lar"
}

function p.decade(frame)
	local args = frame.args
    if args[1] == nil then
        args = frame:getParent().args
    end
    if args[1] == nil then
    	args[1] = "{{{1}}}"
    end
    return p._decade(args[1], (args[2] == 'd'), yesno(args.sup))
end

function p._decade(n, d, sup)
	local x = tonumber(mw.ustring.match(n, "(%d*)%W*$"))
	local suffix = "ler"
	if x then
		local mod10 = math.abs(x) % 10
		local mod100 = math.abs(x) % 100
		local mod1000 = math.abs(x) % 1000
		if x == 0 then
			suffix = "lar"
		elseif mod1000 == 0 then
			suffix = "ler"
		elseif mod100 == 0 then
			suffix = "ler"
		elseif mod10 == 0 then
			suffix = suffixes[x % 100]
		else
			suffix = suffixes[x %10] or ""
		end
	end
	if sup then
		suffix = "<sup>" .. suffix .. "</sup>"
	end
	return n .. '\'' .. suffix
end

function inDecade( year )
	if year >= 0 then
    	return p._decade(year)
	else
    	year = -year
    return 'MÖ ' .. p._decade(year) 
		end
end

return p