אונטערשייד צווישן ווערסיעס פון "יחידה:עלטער"

175 בייטן אראפגענומען ,  פֿאַר 2 יאָר
באהאנדלען אויך {{לינק צו אידיש יאר}}
אין תקציר עריכה
צייכן: צוריקגעשטעלט
(באהאנדלען אויך {{לינק צו אידיש יאר}})
 
(5 צווישנדיגע ווערסיעס פונעם זעלבן באַניצער נישט געוויזן)
שורה 1: שורה 1:
local dateParser = require( "Module:דאטום" )
local dateParser = require( "Module:דאטום" )
local Arguments = require( "Module:Arguments" )
local Arguments = require( "Module:Arguments" )
local gim = require( "Module:גימטריה" )


local Errors = {
local Errors = {
שורה 6: שורה 7:
}
}


function len1(s)
function count(str, substring)
if (s == nil) then
    local count = 0
return 0 end
    local _, occurrences = string.gsub(str, substring, function()
return mw.ustring.len(s)
        count = count + 1
    end)
    return count
end
end
function hebnum(s)
numberstable = {
["א"] = 1, ["ב"] = 2, ["ג"] = 3, ["ד"] = 4, ["ה"] = 5,
["ו"] = 6, ["ז"] = 7, ["ח"] = 8, ["ט"] = 9, ["י"] = 10,
["כ"] = 20, ["ך"] = 20, ["ל"] = 30, ["מ"] = 40, ["ם"] = 40,
["נ"] = 50, ["ן"] = 50, ["ס"] = 60, ["ע"] = 70, ["פ"] = 80,
["ף"] = 80, ["צ"] = 90, ["ץ"] = 90, ["ק"] = 100, ["ר"] = 200,
["ש"] = 300, ["ת"] = 400, ["'"] = 0, ["\""] = 0,}
local ans = 0
local str = s
while len1(str) > 0 do
ans = ans + numberstable[mw.ustring.sub(str, 1, 1)]
str = mw.ustring.sub(str, 2, len1(str))
end
return ans
end
function takeyear(year)
local new
if 0 < find1(year, "אלפים")
then new = hebnum(mw.ustring.sub(year, 1, 2)) * 1000
else new = hebnum(mw.ustring.sub(year, 3, len1(year))) + 1000
* hebnum(mw.ustring.sub((year), 1, 2)) end
return frame:callParserFunction("padleft", {new - 3761, 4})
end


function ToDate(frame, Date, ApproxDate)
function ToDate(frame, Date, ApproxDate)
שורה 94: שורה 69:
--local age_string = args['מציין']
--local age_string = args['מציין']
local BirthDateStr = args['געבורט דאטום'] or args['תאריך לידה עברי']
local BirthDateStr = args['געבורט דאטום'] or args['תאריך לידה עברי']
     if args['געבורט דאטום'] == nil and #mw.text.split( args['תאריך לידה עברי'], '%s' ) == 1 then --most probably just year
local l = frame:preprocess(args['תאריך לידה עברי']) -- preprocess, to handle {{לינק צו אידיש יאר}}
local BirthDateNum = takeyear(args['תאריך לידה עברי']) - 3760
     if args['געבורט דאטום'] == nil and (#mw.text.split(l, '%s' ) == 1 or count(l, "%[%[") == 1) then --most probably just year or yearlink
BirthDateStr = tostring(BirthDateNum)
    if #mw.text.split(l, '%s' ) > 1 then
    l = l:match("%[%[.-|(.*)%]%]")
    end
    local birthParts = mw.text.split( l, "'", true )
local BirthDateNum = gim.gimatria(birthParts[1])*1000 + gim.gimatria(birthParts[2]) - 3760
if BirthDateNum < 1 then
if BirthDateNum < 1 then
BirthDateStr = BirthDateStr .. " לפנה\"ס"
BirthDateStr = tostring(math.abs(BirthDateNum)) .. " לפנה\"ס"
else
BirthDateStr = tostring(BirthDateNum)
end
end
end
    end
    --error(BirthDateStr)
local DeathDateStr = args['פטירה דאטום'] or args['תאריך פטירה עברי']
local DeathDateStr = args['פטירה דאטום'] or args['תאריך פטירה עברי']
if args['פטירה דאטום'] == nil and #mw.text.split( args['תאריך פטירה עברי'], '%s' ) == 1 then --most probably just year
local p = frame:preprocess(args['תאריך פטירה עברי'])
local DeathDateNum = takeyear(args['תאריך פטירה עברי']) - 3760
if args['פטירה דאטום'] == nil and (#mw.text.split(p, '%s' ) == 1 or count(p, "%[%[") == 1) then --most probably just year or yearlink
DeathDateStr = tostring(DeathDateNum)
    if #mw.text.split(p, '%s' ) > 1 then
    p = p:match("%[%[.-|(.*)%]%]")
    end
local deathParts = mw.text.split( p, "'", true )
local DeathDateNum = gim.gimatria(deathParts[1])*1000 + gim.gimatria(deathParts[2]) - 3760
if DeathDateNum < 1 then
if DeathDateNum < 1 then
DeathDateStr = DeathDateStr .. " לפנה\"ס"
DeathDateStr = tostring(math.abs(DeathDateNum)) .. " לפנה\"ס"
else
DeathDateStr = tostring(DeathDateNum)
end
end
end
end
שורה 293: שורה 281:
return {
return {
['עלטער'] = ageCalcFromFrame,
['עלטער'] = ageCalcFromFrame,
ageCalc = ageCalc,
ageCalc = ageCalc
hebnum = hebnum
}
}