Modul:Birth date
Tampilan
Dokumentasi untuk modul ini dapat dibuat di Modul:Birth date/doc
local p = {}
-- Nama bulan dalam bahasa Indonesia
local months = {
"Januari", "Februari", "Maret", "April", "Mei", "Juni",
"Juli", "Agustus", "September", "Oktober", "November", "Desember"
}
function p.main(frame)
local args = frame:getParent().args
local year, month, day
-- Cek jika input menggunakan format YYYY-MM-DD atau YYYY/MM/DD
local inputStr = args[1] or ""
if inputStr:find("^%d%d%d%d%-%d%d%-%d%d$") or inputStr:find("^%d%d%d%d/%d%d/%d%d$") then
year, month, day = inputStr:match("(%d%d%d%d)[%-/](%d%d)[%-/](%d%d)")
year = tonumber(year)
month = tonumber(month)
day = tonumber(day)
else
-- Jika menggunakan parameter terpisah: {{Birth date|1998|5|20}} atau {{Birth date|year=1998|month=5|day=20}}
year = tonumber(args[1] or args.year)
month = tonumber(args[2] or args.month)
day = tonumber(args[3] or args.day)
end
-- Validasi Tanggal
if not year or not month or not day or month < 1 or month > 12 or day < 1 or day > 31 then
return '<span style="color:red; font-weight:bold;">[Format Tanggal Salah]</span>'
end
local monthName = months[month] or ""
-- Output Murni: "20 Mei 1998"
return string.format('%d %s %d', day, monthName, year)
end
return p