יחידה:קביעות

פון המכלול
ווערסיע פון 00:38, 15 יולי 2025 דורך שווערמער (שמועס | ביישטייערונגען) (געשאַפן בלאַט מיט 'local p = {} -- פונקציית עזר – החזרת אות בעברית או מספר local function gim(n) local a = "אבגדהוזחכש" if n > 11 then return tostring(n) end return mw.ustring.sub(a, n, n) end -- הפונקציה הראשית: מקבלת שנה עברית ומחזירה סימן (למשל "הכז*") function p.siman(frame) local Y = tonumber(frame.args[1]) or tonumber(frame:getParent().args[1]) if not Y then re...')
(חילוק) → עלטערע ווערסיע | איצטיגע ווערסיע (חילוק) | נייערע ווערסיע ← (חילוק)
קפיצה לניווט קפיצה לחיפוש

דער מאדול קביעות נעמט אריין א נומער פון א יאר, און געבט די דריי אותיות סימן פון די קביעות דערפון.

ביישפילן:

  1. {{#invoke:קביעות|סימן|5785}} => סקריפט פאנטשער: די פונקציע "סימן" עקזיסטירט נישט.
  2. {{#invoke:קביעות|סימן|5763}} => סקריפט פאנטשער: די פונקציע "סימן" עקזיסטירט נישט.
  3. {{#invoke:קביעות|סימן|2450}} => סקריפט פאנטשער: די פונקציע "סימן" עקזיסטירט נישט.

local p = {}

-- פונקציית עזר – החזרת אות בעברית או מספר
local function gim(n)
    local a = "אבגדהוזחכש"
    if n > 11 then return tostring(n) end
    return mw.ustring.sub(a, n, n)
end

-- הפונקציה הראשית: מקבלת שנה עברית ומחזירה סימן (למשל "הכז*")
function p.siman(frame)
    local Y = tonumber(frame.args[1]) or tonumber(frame:getParent().args[1])
    if not Y then return "שנה לא תקפה" end

    local b = 38004 + 39673 * math.floor((235 * Y - 234) / 19)
    local d = math.floor(b / 25920)
    local i = b % 25920
    local f = 1 + (d % 7)
    local g = math.floor(((7 * Y + 13) % 19) / 12)
    local h = math.floor(((7 * Y + 6) % 19) / 12)

    if (i >= 9924 and f == 3 and g == 0) or (i >= 16789 and f == 2 and h == 1) then
        d = d + 1
        i = i - 25920
    end

    local j1 = d + ((d + 5) % 7) % 2

    b = i + 9516 + (39673 * g)
    d = d + math.floor(b / 25920) + 354 + 28 * g
    i = b % 25920
    f = 1 + (d % 7)
    h = math.floor(((7 * Y + 1) % 19) / 12)

    if (i >= 9924 and f == 3 and h == 0) or (i >= 16789 and f == 2 and g == 1) then
        d = d + 1
    end

    local j2 = d + ((d + 5) % 7) % 2

    local s = (g == 1 and "'''" or "")
    	   .. gim(j1 % 7 + 1)
           .. gim((j2 - j1) % 10 + 5)
           .. gim((j2 - 2) % 7 + 1)
           .. (g == 1 and "'''" or "")

    return s
end

return p