עריכת הדף "
יחידה:לוח שנה עברי
"
קפיצה לניווט
קפיצה לחיפוש
אזהרה:
אינכם מחוברים לחשבון. כתובת ה־IP שלכם תוצג בפומבי אם תבצעו עריכות כלשהן. אם
תיכנסו לחשבון
או
תיצרו חשבון
, העריכות שלכם תיוחסנה לשם המשתמש שלכם ותקבלו גם יתרונות אחרים.
בדיקת אנטי־ספאם.
אין
למלא שדה זה!
local p = {} local function is_leap(year) -- הפונקציה מקבלת שנה עברית בתור מספר ומחזירה ערך בוליאני האם היא מעוברת local leap_year = {0, 3, 6, 8, 11, 14, 17, 19} -- השנים המעוברות בתוך מחזור של 19 שנה for _, value in pairs(leap_year) do if (year % 19) == value then return true end end return false end local function moladTishrei(year) -- הפונקציה מקבלת שנה עברית בתור מספר ומחזירה את המולד של תשרי בתור טבלה local years = (year - 1) % 19 -- מספר השנים במחזור שלפני השנה הזו local months = (year - 1 - years) * 235 / 19 -- מספר החודשים בכל המחזורים מבריאת העולם for y = 1, years do -- הוספת החודשים של המחזור הנוכחי לסכום if is_leap(y) then months = months + 13 else months = months + 12 end end local all_parts = (months * 39673 + 57444) % 181440 -- הכפלת מספר החודשים בא'-י"ב-תשצ"ג, הוספת ב'-ה'-ר"ד וחלוקה במספר החלקים בשבעה ימים local parts = all_parts % 1080 local all_hours = (all_parts - parts) / 1080 local hours = all_hours % 24 local days = (all_hours - hours) / 24 if days == 0 then days = 7 end return {days, hours, parts} end local function first_day(year) -- מקבלת שנה עברית בתור מספר ומחזירה את היום שבו יחול ראש השנה local molad = moladTishrei(year) local day, hours, parts = molad[1], molad[2], molad[3] local old_molad = hours > 18 or (hours == 18 and parts > 0) -- מולד זקן local g_t_rd = day == 3 and (hours > 9 or (hours == 9 and parts >= 204)) and not is_leap(year) -- ג'-ט'-ר"ד בשנה פשוטה local b_tv_tkpt = is_leap(year - 1) and day == 2 and (hours > 15 or (hours == 15 and parts >= 589)) -- ב'-ט"ו-תקפ"ט אחר עיבור if old_molad or g_t_rd or b_tv_tkpt then day = day + 1 end if day == 8 then day = 2 end if day == 1 or day == 4 or day == 6 then day = day + 1 end -- לא אד"ו ראש return day end local function year_type(year) -- מקבלת שנה עברית בתור מספר ומחזירה את הסוג של השנה כמחרוזת local difference = (first_day(year + 1) + 7 - first_day(year)) % 7 if difference == 0 then difference = 7 end if difference == 3 or (is_leap(year) and difference == 5) then return "חסרה" end if difference == 4 or difference == 6 then return "כסדרה" end if (difference == 5 and not is_leap(year)) or difference == 7 then return "שלמה" end end local function days_a_month(year, month) -- מקבלת שנה עברית בתור מספר וחודש בתור מחרוזת ומחזירה את מספר הימים בו local full_months = {"תשרי", "שבט", "אדר א'", "ניסן", "סיון", "אב"} local missing_months = {"טבת", "אדר", "אדר ב'", "אייר", "תמוז", "אלול"} for _, value in pairs(full_months) do if month == value then return 30 end end for _, value in pairs(missing_months) do if month == value then return 29 end end if month == "חשון" then if year_type(year) == "שלמה" then return 30 else return 29 end end if month == "כסלו" then if year_type(year) == "חסרה" then return 29 else return 30 end end end local function return_month(year, month, previous) -- מקבלת שנה עברית בתור מספר וחודש בתור מחרוזת ומחזירה את החודש הקודם או הבא local months = {"תשרי", "חשון", "כסלו", "טבת", "שבט", "אדר", "ניסן", "אייר", "סיון", "תמוז", "אב", "אלול"} if is_leap(year) then months = {"תשרי", "חשון", "כסלו", "טבת", "שבט", "אדר א'", "אדר ב'", "ניסן", "אייר", "סיון", "תמוז", "אב", "אלול"} end for index, value in pairs(months) do if month == value then if previous then if month == "תשרי" then return "אלול" else return months[index - 1] end else if month == "אלול" then return "תשרי" else return months[index + 1] end end end end return error("שם חודש לא מוכר: " .. month) end local function return_day(year, month, day, previous) -- מקבלת שנה עברית בתור מספר וחודש בתור מחרוזת ויום בחודש בתור מספר ומחזירה את היום הקודם (ברירת מחדל) או הבא if day > days_a_month(year, month) then return error("תאריך לא תקין") end if previous then if day == 1 then return days_a_month(year, return_month(year, month, true)) else return day - 1 end else if day == days_a_month(year, month) then return 1 else return day + 1 end end return error("שגיאת תאריך") end function p.next_month(frame) -- מקבלת שנה עברית בתור מספר וחודש בתור מחרוזת ומחזירה מחרוזת עם השנה והחודש מופרדים בפסיק local year = tonumber(frame.args["year"]) local month = frame.args["month"] month = return_month(year, month, false) if month == "תשרי" then year = year + 1 end return month .. "/" .. year end function p.previous_month(frame) -- מקבלת שנה עברית בתור מספר וחודש בתור מחרוזת ומחזירה טבלה עם החודש הקודם local year = tonumber(frame.args["year"]) local month = frame.args["month"] month = return_month(year, month, true) if month == "אלול" then year = year - 1 end return month .. "/" .. year end function p.next_date(frame) -- מקבלת תאריך מלא ומחזירה טבלה עם התאריך המלא הבא local year = tonumber(frame.args["year"]) local month = frame.args["month"] local day = tonumber(frame.args["day"]) day = return_day(year, month, day, false) if day == 1 then month = return_month(year, month, false) if month == "תשרי" then year = year + 1 end end return day .. "/" .. month .. "/" .. year end function p.previous_date(frame) -- מקבלת תאריך מלא ומחזירה טבלה עם התאריך המלא הקודם local year = tonumber(frame.args["year"]) local month = frame.args["month"] local day = tonumber(frame.args["day"]) local new_day = return_day(year, month, day, true) if day == 1 then if month == "תשרי" then year = year - 1 end month = return_month(year, month, true) end return new_day .. "/" .. month .. "/" .. year end return p
תקציר:
שימו לב:
תרומתכם לאוצר הספרים היהודי השיתופי תפורסם תחת תנאי הרישיון: ללא שימוש ציבורי וללא שימוש מסחרי (למעט בידי אוצר הספרים היהודי השיתופי, ראו
אוצר:זכויות יוצרים
לפרטים נוספים). אם אינכם רוצים שעבודתכם תהיה זמינה לעריכה על־ידי אחרים, שתופץ לעיני כול, ושאוצר הספרים היהודי השיתופי יוכל להשתמש בה ובנגזרותיה – אל תפרסמו אותה פה. כמו־כן, אתם מבטיחים לנו כי כתבתם את הטקסט הזה בעצמכם, או העתקתם אותו ממקור שאינו מוגן בזכויות יוצרים.
אל תעשו שימוש בחומר המוגן בזכויות יוצרים ללא רשות!
ביטול
עזרה בעריכה
(נפתח בחלון חדש)
תבניות המופיעות בדף זה:
תבנית:Replace
(
עריכה
)
תבנית:תב
(
עריכה
)
יחידה:PV-options
(
עריכה
)
יחידה:ParamValidator
(
עריכה
)
יחידה:String
(
עריכה
)
יחידה:לוח שנה עברי/תיעוד
(
עריכה
)
תפריט ניווט
כלים אישיים
עברית
לא בחשבון
שיחה
תרומות
יצירת חשבון
כניסה לחשבון
מרחבי שם
יחידה
שיחה
English
צפיות
קריאה
עריכה
גרסאות קודמות
עוד
חיפוש
ניווט
עמוד ראשי
שינויים אחרונים
דף אקראי
עזרה
ייעוץ כללי
בקשת ספרים
עורכים שואלים
דיווח על טעויות
צ'אט להדרכת עריכה
יש לי חידוש!
עריכה תורנית
עריכה תורנית
עזר לעורך
פורום עורכים
בית המדרש
אחרונים בפורום
פעילות המיזם
פרויקטים פתוחים
לוח מודעות
אולם דיונים
בקשות מהמערכת
בקשות ממפעילים
כלים
דפים המקושרים לכאן
שינויים בדפים המקושרים
דפים מיוחדים
מידע על הדף