<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="id">
	<id>https://wikisport.id/index.php?action=history&amp;feed=atom&amp;title=Modul%3APendirian</id>
	<title>Modul:Pendirian - Riwayat revisi</title>
	<link rel="self" type="application/atom+xml" href="https://wikisport.id/index.php?action=history&amp;feed=atom&amp;title=Modul%3APendirian"/>
	<link rel="alternate" type="text/html" href="https://wikisport.id/index.php?title=Modul:Pendirian&amp;action=history"/>
	<updated>2026-10-13T08:27:04Z</updated>
	<subtitle>Riwayat revisi halaman ini di wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://wikisport.id/index.php?title=Modul:Pendirian&amp;diff=763&amp;oldid=prev</id>
		<title>Admin: ←Membuat halaman berisi &#039;local p = {}  -- Nama-nama bulan dalam Bahasa Indonesia local nama_bulan = {     [1] = &quot;Januari&quot;,   [2] = &quot;Februari&quot;, [3] = &quot;Maret&quot;,    [4] = &quot;April&quot;,     [5] = &quot;Mei&quot;,       [6] = &quot;Juni&quot;,     [7] = &quot;Juli&quot;,     [8] = &quot;Agustus&quot;,     [9] = &quot;September&quot;, [10] = &quot;Oktober&quot;, [11] = &quot;November&quot;, [12] = &quot;Desember&quot; }  -- Mengambil argumen dari template secara aman local function get_args(frame)     local args = {}     if frame.getParent then         local pargs = frame:getPa...&#039;</title>
		<link rel="alternate" type="text/html" href="https://wikisport.id/index.php?title=Modul:Pendirian&amp;diff=763&amp;oldid=prev"/>
		<updated>2026-10-11T19:09:34Z</updated>

		<summary type="html">&lt;p&gt;←Membuat halaman berisi &amp;#039;local p = {}  -- Nama-nama bulan dalam Bahasa Indonesia local nama_bulan = {     [1] = &amp;quot;Januari&amp;quot;,   [2] = &amp;quot;Februari&amp;quot;, [3] = &amp;quot;Maret&amp;quot;,    [4] = &amp;quot;April&amp;quot;,     [5] = &amp;quot;Mei&amp;quot;,       [6] = &amp;quot;Juni&amp;quot;,     [7] = &amp;quot;Juli&amp;quot;,     [8] = &amp;quot;Agustus&amp;quot;,     [9] = &amp;quot;September&amp;quot;, [10] = &amp;quot;Oktober&amp;quot;, [11] = &amp;quot;November&amp;quot;, [12] = &amp;quot;Desember&amp;quot; }  -- Mengambil argumen dari template secara aman local function get_args(frame)     local args = {}     if frame.getParent then         local pargs = frame:getPa...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Halaman baru&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Nama-nama bulan dalam Bahasa Indonesia&lt;br /&gt;
local nama_bulan = {&lt;br /&gt;
    [1] = &amp;quot;Januari&amp;quot;,   [2] = &amp;quot;Februari&amp;quot;, [3] = &amp;quot;Maret&amp;quot;,    [4] = &amp;quot;April&amp;quot;,&lt;br /&gt;
    [5] = &amp;quot;Mei&amp;quot;,       [6] = &amp;quot;Juni&amp;quot;,     [7] = &amp;quot;Juli&amp;quot;,     [8] = &amp;quot;Agustus&amp;quot;,&lt;br /&gt;
    [9] = &amp;quot;September&amp;quot;, [10] = &amp;quot;Oktober&amp;quot;, [11] = &amp;quot;November&amp;quot;, [12] = &amp;quot;Desember&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Mengambil argumen dari template secara aman&lt;br /&gt;
local function get_args(frame)&lt;br /&gt;
    local args = {}&lt;br /&gt;
    if frame.getParent then&lt;br /&gt;
        local pargs = frame:getParent().args&lt;br /&gt;
        if pargs then&lt;br /&gt;
            for k, v in pairs(pargs) do&lt;br /&gt;
                args[k] = mw.text.trim(tostring(v))&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    if frame.args then&lt;br /&gt;
        for k, v in pairs(frame.args) do&lt;br /&gt;
            args[k] = mw.text.trim(tostring(v))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return args&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Menghitung jumlah hari dalam suatu bulan&lt;br /&gt;
local function days_in_month(month, year)&lt;br /&gt;
    local days = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }&lt;br /&gt;
    if month == 2 then&lt;br /&gt;
        if (year % 4 == 0 and year % 100 ~= 0) or (year % 400 == 0) then&lt;br /&gt;
            return 29&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return days[month] or 30&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Algoritma presisi selisih waktu&lt;br /&gt;
local function calculate_age(y1, m1, d1, y2, m2, d2)&lt;br /&gt;
    local years = y2 - y1&lt;br /&gt;
    local months = m2 - m1&lt;br /&gt;
    local days = d2 - d1&lt;br /&gt;
&lt;br /&gt;
    if days &amp;lt; 0 then&lt;br /&gt;
        months = months - 1&lt;br /&gt;
        local prev_month = m2 - 1&lt;br /&gt;
        local prev_year = y2&lt;br /&gt;
        if prev_month &amp;lt; 1 then&lt;br /&gt;
            prev_month = 12&lt;br /&gt;
            prev_year = prev_year - 1&lt;br /&gt;
        end&lt;br /&gt;
        days = days + days_in_month(prev_month, prev_year)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if months &amp;lt; 0 then&lt;br /&gt;
        years = years - 1&lt;br /&gt;
        months = months + 12&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return years, months, days&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Parsing input tanggal&lt;br /&gt;
local function parse_date(args)&lt;br /&gt;
    local y, m, d&lt;br /&gt;
&lt;br /&gt;
    local input_str = args[1] or args[&amp;quot;tanggal&amp;quot;] or args[&amp;quot;date&amp;quot;]&lt;br /&gt;
    if input_str and input_str ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        y, m, d = input_str:match(&amp;quot;^([0-9]%d%d%d)%-([0-9]%d?)%-([0-9]%d?)$&amp;quot;)&lt;br /&gt;
        if not y then&lt;br /&gt;
            y, m, d = input_str:match(&amp;quot;^([0-9]%d%d%d)/([0-9]%d?)/([0-9]%d?)$&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
        if not y then&lt;br /&gt;
            y = input_str:match(&amp;quot;^([0-9]%d%d%d)$&amp;quot;)&lt;br /&gt;
            if y then m, d = 1, 1 end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if not y and args[1] and args[1]:match(&amp;quot;^%d+$&amp;quot;) then&lt;br /&gt;
        y = tonumber(args[1])&lt;br /&gt;
        m = tonumber(args[2])&lt;br /&gt;
        d = tonumber(args[3])&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if not y and args[&amp;quot;tahun&amp;quot;] then y = tonumber(args[&amp;quot;tahun&amp;quot;]) end&lt;br /&gt;
    if not m and args[&amp;quot;bulan&amp;quot;] then m = tonumber(args[&amp;quot;bulan&amp;quot;]) end&lt;br /&gt;
    if not d and args[&amp;quot;hari&amp;quot;] then d = tonumber(args[&amp;quot;hari&amp;quot;]) end&lt;br /&gt;
&lt;br /&gt;
    return tonumber(y), tonumber(m) or 1, tonumber(d) or 1&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.utama(frame)&lt;br /&gt;
    local args = get_args(frame)&lt;br /&gt;
    local y1, m1, d1 = parse_date(args)&lt;br /&gt;
&lt;br /&gt;
    if not y1 then&lt;br /&gt;
        return &amp;#039;&amp;lt;span class=&amp;quot;error&amp;quot; style=&amp;quot;color: #d33; font-weight: bold;&amp;quot;&amp;gt;[Peringatan: Masukkan tanggal pendirian yang valid]&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local now = os.date(&amp;quot;!*t&amp;quot;)&lt;br /&gt;
    local y2 = tonumber(args[&amp;quot;ref_tahun&amp;quot;]) or now.year&lt;br /&gt;
    local m2 = tonumber(args[&amp;quot;ref_bulan&amp;quot;]) or now.month&lt;br /&gt;
    local d2 = tonumber(args[&amp;quot;ref_hari&amp;quot;]) or now.day&lt;br /&gt;
&lt;br /&gt;
    local is_future = false&lt;br /&gt;
    if y1 &amp;gt; y2 or (y1 == y2 and m1 &amp;gt; m2) or (y1 == y2 and m1 == m2 and d1 &amp;gt; d2) then&lt;br /&gt;
        is_future = true&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local years, months, days&lt;br /&gt;
    if is_future then&lt;br /&gt;
        years, months, days = calculate_age(y2, m2, d2, y1, m1, d1)&lt;br /&gt;
    else&lt;br /&gt;
        years, months, days = calculate_age(y1, m1, d1, y2, m2, d2)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local mode = string.lower(args[&amp;quot;mode&amp;quot;] or args[&amp;quot;format&amp;quot;] or args[&amp;quot;opsi&amp;quot;] or &amp;quot;otomatis&amp;quot;)&lt;br /&gt;
    local text_usia = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    if years == 0 and months == 0 and days == 0 then&lt;br /&gt;
        text_usia = &amp;quot;hari ini&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
        if mode == &amp;quot;detail&amp;quot; or mode == &amp;quot;presisi&amp;quot; or mode == &amp;quot;lengkap&amp;quot; then&lt;br /&gt;
            local parts = {}&lt;br /&gt;
            if years &amp;gt; 0 then table.insert(parts, years .. &amp;quot; tahun&amp;quot;) end&lt;br /&gt;
            if months &amp;gt; 0 then table.insert(parts, months .. &amp;quot; bulan&amp;quot;) end&lt;br /&gt;
            if days &amp;gt; 0 then table.insert(parts, days .. &amp;quot; hari&amp;quot;) end&lt;br /&gt;
            text_usia = table.concat(parts, &amp;quot;, &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        elseif mode == &amp;quot;ringkas&amp;quot; or mode == &amp;quot;sederhana&amp;quot; then&lt;br /&gt;
            if years &amp;gt; 0 then&lt;br /&gt;
                text_usia = years .. &amp;quot; tahun&amp;quot;&lt;br /&gt;
            elseif months &amp;gt; 0 then&lt;br /&gt;
                text_usia = months .. &amp;quot; bulan&amp;quot;&lt;br /&gt;
            else&lt;br /&gt;
                text_usia = days .. &amp;quot; hari&amp;quot;&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
        else&lt;br /&gt;
            if years &amp;gt;= 1 then&lt;br /&gt;
                if months &amp;gt; 0 then&lt;br /&gt;
                    text_usia = years .. &amp;quot; tahun, &amp;quot; .. months .. &amp;quot; bulan&amp;quot;&lt;br /&gt;
                else&lt;br /&gt;
                    text_usia = years .. &amp;quot; tahun&amp;quot;&lt;br /&gt;
                end&lt;br /&gt;
            elseif months &amp;gt;= 1 then&lt;br /&gt;
                if days &amp;gt; 0 then&lt;br /&gt;
                    text_usia = months .. &amp;quot; bulan, &amp;quot; .. days .. &amp;quot; hari&amp;quot;&lt;br /&gt;
                else&lt;br /&gt;
                    text_usia = months .. &amp;quot; bulan&amp;quot;&lt;br /&gt;
                end&lt;br /&gt;
            else&lt;br /&gt;
                text_usia = days .. &amp;quot; hari&amp;quot;&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if is_future then&lt;br /&gt;
            text_usia = &amp;quot;akan diluncurkan dalam &amp;quot; .. text_usia&lt;br /&gt;
        else&lt;br /&gt;
            text_usia = text_usia .. &amp;quot; yang lalu&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local date_str = d1 .. &amp;quot; &amp;quot; .. (nama_bulan[m1] or &amp;quot;&amp;quot;) .. &amp;quot; &amp;quot; .. y1&lt;br /&gt;
    local show_date = args[&amp;quot;tampilkan_tanggal&amp;quot;] or args[&amp;quot;show_date&amp;quot;] or &amp;quot;ya&amp;quot;&lt;br /&gt;
    local kurung = args[&amp;quot;kurung&amp;quot;] or &amp;quot;ya&amp;quot;&lt;br /&gt;
    local output = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    if mode == &amp;quot;hanya_usia&amp;quot; or mode == &amp;quot;age_only&amp;quot; or show_date == &amp;quot;tidak&amp;quot; or show_date == &amp;quot;no&amp;quot; then&lt;br /&gt;
        if kurung == &amp;quot;ya&amp;quot; or kurung == &amp;quot;yes&amp;quot; then&lt;br /&gt;
            output = &amp;quot;(&amp;quot; .. text_usia .. &amp;quot;)&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
            output = text_usia&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        if kurung == &amp;quot;ya&amp;quot; or kurung == &amp;quot;yes&amp;quot; then&lt;br /&gt;
            output = date_str .. &amp;#039; &amp;lt;small class=&amp;quot;explain&amp;quot; style=&amp;quot;color: #555;&amp;quot;&amp;gt;(&amp;#039; .. text_usia .. &amp;#039;)&amp;lt;/small&amp;gt;&amp;#039;&lt;br /&gt;
        else&lt;br /&gt;
            output = date_str .. &amp;quot; — &amp;quot; .. text_usia&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local auto_cat = args[&amp;quot;kategori&amp;quot;] or args[&amp;quot;cat&amp;quot;]&lt;br /&gt;
    local jenis = string.lower(args[&amp;quot;tipe&amp;quot;] or args[&amp;quot;jenis&amp;quot;] or &amp;quot;organisasi&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    if auto_cat == &amp;quot;ya&amp;quot; or auto_cat == &amp;quot;yes&amp;quot; then&lt;br /&gt;
        if jenis == &amp;quot;perusahaan&amp;quot; then&lt;br /&gt;
            output = output .. &amp;quot;[[Kategori:Perusahaan yang didirikan tahun &amp;quot; .. y1 .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        elseif jenis == &amp;quot;produk&amp;quot; then&lt;br /&gt;
            output = output .. &amp;quot;[[Kategori:Produk yang diluncurkan tahun &amp;quot; .. y1 .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        elseif jenis == &amp;quot;papan&amp;quot; or jenis == &amp;quot;dewan&amp;quot; or jenis == &amp;quot;komite&amp;quot; then&lt;br /&gt;
            output = output .. &amp;quot;[[Kategori:Papan dan dewan yang dibentuk tahun &amp;quot; .. y1 .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
            output = output .. &amp;quot;[[Kategori:Organisasi yang didirikan tahun &amp;quot; .. y1 .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return output&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>