Modul:Ordinal: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Farras (bicara | kontrib)
kTidak ada ringkasan suntingan
kTidak ada ringkasan suntingan
Baris 1:
--[[
Modul ini akan menambahkan akhiran ordinal yang sesuai ke bilangan bulat tertentu.
This template will add the appropriate ordinal prefix to a given integer.
Harap jangan mengubah kode ini tanpa menerapkan perubahan terlebih dahulu di
Please do not modify this code without applying the changes first at
Module:Ordinal/sandbox anddan testingmelakukan at Module:Ordinal/sandbox/testcases andpengujian.
Module talk:Ordinal/sandbox/testcases.
]]
 
local p = {}
 
local yesno = require('Modul:Yesno') -- interpretasi nilai boolean
 
--[[
Fungsi ini mengubah nilai bilangan bulat menjadi angka diikuti indikator ordinal.
This function converts an integer value into a numeral followed by ordinal indicator.
The outputOutput string mightdapat containberisi tag HTML tags.
Penggunaan:
Usage:
{{#invoke:Ordinal|ordinal|1=|2=|sup=}}
{{#invoke:Ordinal|ordinal}} - usesmenggunakan theparameter caller's parameterspemanggil
Parameter:
Parameters
1: AnyAngka number oratau string apa saja.
2: Atur menjadi "d" jika modul harus menampilkan "d" alih-alih "nd" dan "rd".
sup: Atur menjadi ya/tidak untuk mengaktifkan/mematikan akhiran ordinal superskrip.
]]
function p.ordinal(frame)
Baris 30 ⟶ 33:
args[1] = "{{{1}}}"
end
return p._ordinal(args[1], (args[2] == 'd'), yesno(args.sup))
end
 
function p._ordinal(n, d, sup)
local x = tonumber(mw.ustring.match(n, "(%d*)%W*$"))
local prefixsuffix = "ke-"
-- Jika tonumber(n) berhasil:
return prefix .. n
if x then
local mod10 = math.abs(x) % 10
local mod100 = math.abs(x) % 100
if mod10 == 1 and mod100 ~= 11 then
suffix = "ke-1"
elseif mod10 == 2 and mod100 ~= 12 then
if d then suffix = "ke-2" else suffix = "ke-2" end
elseif mod10 == 3 and mod100 ~= 13 then
if d then suffix = "ke-3" else suffix = "ke-3" end
else
suffix = "ke-" .. x
end
end
if sup then
suffix = "<sup>" .. suffix .. "</sup>"
end
return prefixn .. nsuffix
end