יחידה:תאריך עברי: הבדלים בין גרסאות בדף

אין תקציר עריכה
מ 197 גרסאות של הדף wikipedia:he:יחידה:תאריך_עברי יובאו
 
(37 גרסאות ביניים של 5 משתמשים אינן מוצגות)
שורה 9: שורה 9:
}
}


typomonthtable = {["חשון"] = "חשוון", ["כסליו"] = "כסלו", ["אדר א"] = "אדר א'",
typomonthtable = {["חשון"] = "חשוון", ["כסליו"] = "כסלו",
["אדר ב"] = "אדר ב'", ["חשון"] = "חשוון", ["סיון"] = "סיוון",
["חשון"] = "חשוון", ["סיון"] = "סיוון",
["מרחשון"] = "חשוון", ["מרחשוון"] = "חשוון", ["מר-חשוון"] = "חשוון",
["מרחשון"] = "חשוון", ["מרחשוון"] = "חשוון", ["מר-חשוון"] = "חשוון",
["מנחם אב"] = "אב", ["מנחם-אב"] = "אב",
["מנחם אב"] = "אב", ["מנחם-אב"] = "אב",
["שבט (חודש)|שבט"] = "שבט", ["שבט (חודש)"] = "שבט"}
["שבט (חודש)|שבט"] = "שבט", ["שבט (חודש)"] = "שבט"
}


lastletters = {["כ"] = "ך", ["מ"] = "ם", ["נ"] = "ן", ["פ"] = "ף", ["צ"] = "ץ"}
lastletters = {["כ"] = "ך", ["מ"] = "ם", ["נ"] = "ן", ["פ"] = "ף", ["צ"] = "ץ"}
שורה 22: שורה 23:


function find1(str, what, where)
function find1(str, what, where)
local ans = mw.ustring.find(str, what, where, true)
return mw.ustring.find(str, what, where, true) or 0
if (ans == nil) then
ans = 0 end
return ans
end
end


שורה 78: שורה 76:
greg = same(greg .. " - ".. diffs .. "days")
greg = same(greg .. " - ".. diffs .. "days")
checkcasp(greg)
checkcasp(greg)
if makeformat then
return frame:callParserFunction("#זמןמ:" .. makeformat, greg)
end
return format(greg) end
return format(greg) end
count = count + 1
count = count + 1
שורה 137: שורה 138:
function same(gdate)
function same(gdate)
return frame:callParserFunction("#זמןמ:d-m-Y", gdate)
return frame:callParserFunction("#זמןמ:d-m-Y", gdate)
end
function makeyear(gdate)
local year = frame:callParserFunction("#זמןמ:Y", gdate)
if tonumber(year) < 1000 and which
then year = sub1(year, 2)
end
return year
end
end


function to(gdate)
function to(gdate)
local year = makeyear(gdate)
if frame.args["links"] == "yes"
if frame.args["links"] == "yes"
then return "[[" .. frame:callParserFunction("#זמןמ:j בF", gdate) .. "]] [["
then return "[[" .. frame:callParserFunction("#זמןמ:j בF", gdate) .. "]] [["
.. frame:callParserFunction("#זמןמ:Y", gdate) .. "]]" end
.. year .. "]]" end
return frame:callParserFunction("#זמןמ:j בF Y", gdate)
return frame:callParserFunction("#זמןמ:j בF", gdate) .. " " .. year
end
end


function tomonth(gdate)
function tomonth(gdate)
local year = makeyear(gdate)
if frame.args["links"] == "yes"
if frame.args["links"] == "yes"
then return "[[" .. frame:callParserFunction("#זמןמ:F", gdate) .. "]] [["
then return "[[" .. frame:callParserFunction("#זמןמ:F", gdate) .. "]] [["
.. frame:callParserFunction("#זמןמ:Y", gdate) .. "]]" end
.. year .. "]]" end
return frame:callParserFunction("#זמןמ:F Y", gdate)
return frame:callParserFunction("#זמןמ:F", gdate) .. " " .. year
end
end


שורה 160: שורה 171:


function toyear(gdate)
function toyear(gdate)
local year = makeyear(gdate)
if frame.args["links"] == "yes"
if frame.args["links"] == "yes"
then return "[[" .. frame:callParserFunction("#זמןמ:Y", gdate) .. "]]" end
then return "[[" .. year .. "]]" end
return frame:callParserFunction("#זמןמ:Y", gdate)
return year
end
 
function fixmonth(hdate)
local point
local max = 0
local place = 0
for m, mm in pairs(typomonthtable) do
point = find1(hdate, m)
if point > 0 and max < len1(m)
then max = len1(m)
place = m end
end
if max > 0
then point = find1(hdate, place)
return sub1(hdate, 1, point - 1) .. typomonthtable[place] .. sub1(hdate, point + len1(place)) end
return hdate
end
end


function fixdate(hdate)
function fixdate(hdate1)
local hdate = fixmonth(hdate1)
if 1 == find1(hdate, "ראש חודש")
if 1 == find1(hdate, "ראש חודש")
then hdate = "א' ב" .. sub1(hdate, 10) end
then hdate = "א' ב" .. sub1(hdate, 10) end
שורה 181: שורה 210:
if (len1(h3) > 1 and sub1(h3, 2, 2) ~= "'") then
if (len1(h3) > 1 and sub1(h3, 2, 2) ~= "'") then
h3 = "ה'" .. h3 end
h3 = "ה'" .. h3 end
--[=[
for m, mm in pairs(typomonthtable) do
for m, mm in pairs(typomonthtable) do
if h2 == "ב" .. m
if h2 == "ב" .. m
then h2 = "ב" .. mm end
then h2 = "ב" .. mm end
end
end
]=]
for y, yy in pairs(lastletters) do
for y, yy in pairs(lastletters) do
if sub1(h3, len1(h3)) == y
if sub1(h3, len1(h3)) == y
שורה 290: שורה 321:


function fromhebrew1(hdate)
function fromhebrew1(hdate)
local ht, rem = findhdatetype(hdate)
local ht, rem = findhdatetype(fixmonth(hdate))
if ht == "dmy"
if ht == "dmy"
then return ifwhich(fromhebrewdate(rem, to))
then return ifwhich(fromhebrewdate(rem, to))
שורה 321: שורה 352:
function fromhebrew(f)
function fromhebrew(f)
which = true
which = true
return fromhebrewandverify(f)
end
function fromhebrewformat(f)
which = true
makeformat = f.args["format"]
return fromhebrewandverify(f)
return fromhebrewandverify(f)
end
end
שורה 326: שורה 363:
function verify(f)
function verify(f)
frame = f
frame = f
if noth(frame.args[1]) then return "" end
which = false
which = false
local success, res = pcall(pick1, frame.args[1], frame.args[2], "[[קטגוריה:חוסר מתאם בין תאריך עברי לתאריך לועזי]]")
local success, res = pcall(pick1, frame.args[1], frame.args[2], "[[קטגוריה:חוסר מתאם בין תאריך עברי לתאריך לועזי]]")
שורה 459: שורה 495:
-- .. frame.args["type"] .. " לועזי מדויק]]" end
-- .. frame.args["type"] .. " לועזי מדויק]]" end
return "" end
return "" end
if hsuccess and wsuccess
if wsuccess and hsuccess
then if ht == "dmy" then return hdw
then if wt == "dmy" then return wdate
elseif wt == "dmy" then return wdate
elseif ht == "dmy" then return hdw
elseif wt == "my" then return wdate
elseif ht == "my" then return hdw
elseif ht == "my" then return hdw
elseif wt == "my" then return wdate
elseif wt == "y" then return wdate
elseif ht == "y" then return hdw
else return hdw end
else return wdate end
elseif wsuccess then return wdate
elseif hsuccess then return hdw
elseif hsuccess then return hdw
elseif wsuccess then return wdate
elseif wt == "about" then return wdate
elseif ht == "about" then return hdate
else return hdate end
else return wdate end
end
end


שורה 480: שורה 516:
function pick(f)
function pick(f)
frame = f
frame = f
if noth(frame.args["hebrew"]) then return "" end
local hebrew = frame.args["hebrew"]
local success, res = pcall(pick1, frame.args["hebrew"], frame.args["world"])
local world = frame.args["world"]
local habout = false
local wabout = false
if frame:expandTemplate({title = "גיל לערכי אישים/מקורב", args = {str = hebrew}}) ~= ""
then hebrew = ""
habout = true end
if frame:expandTemplate({title = "גיל לערכי אישים/מקורב", args = {str = world}}) ~= ""
then world = ""
wabout = true end
local success, res = pcall(pick1, hebrew, world)
if success
if success
then return res
then if habout and world == ""
then return frame.args["hebrew"] end
if wabout and hebrew == ""
then return frame.args["world"] end
return res
elseif frame.args["error"] == nil
elseif frame.args["error"] == nil
then return aserror(res) end
then return aserror(res) end
שורה 520: שורה 569:
then return ans
then return ans
else return noans end
else return noans end
end
function noth(hdate)
return 0 < find1(hdate, "אלפים")
end
end


שורה 545: שורה 590:
if 0 < find1(hdate, "אלפים")
if 0 < find1(hdate, "אלפים")
then code = code + 1 end
then code = code + 1 end
if 1 == find1(hdate, "אדר")
if 1 == find1(hdate, "אדר א")
then code = code + 2 end
if 1 == find1(hdate, "אדר ב")
then code = code + 2 end
then code = code + 2 end
local year, month, day = funcs[#w][code]()
local year, month, day = funcs[#w][code]()
שורה 564: שורה 611:
end
end


function test(f)
return {fromhebrew = fromhebrew, tohebrew = tohebrew, verify = verify, pick = pick, samedate = samedate,
local d, m, y = parts(f.args[1])
fromhebrewformat = fromhebrewformat}
nl = ".<br/>."
return nl .. tostring(d) .. nl .. tostring(m) .. nl .. tostring(y)  .. nl
end
 
return {fromhebrew = fromhebrew, tohebrew = tohebrew, verify = verify, pick = pick, samedate = samedate, test = test}