דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תוכנה
  3. להורדה | סקריפט פייתון לחישוב האם השנה מעוברת או פשוטה ,האם חשון וכסליו מלאים או חסרים ובאיזה יום יוצא ראש השנה

להורדה | סקריפט פייתון לחישוב האם השנה מעוברת או פשוטה ,האם חשון וכסליו מלאים או חסרים ובאיזה יום יוצא ראש השנה

מתוזמן נעוץ נעול הועבר תוכנה
4 פוסטים 2 כותבים 298 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • האדם החושבה מנותק
    האדם החושבה מנותק
    האדם החושב
    כתב ב נערך לאחרונה על ידי האדם החושב
    #1

    מבוסס על הרמב"ם הל' קידוש החודש פרקים ו-ז-ח ,חוץ מחישוב המחזורים שבמקום להוסיף בי"ו תקצ"ה לכל מחזור ,ד"ח תתע"ו לשנה פשוטה והכ"א תקפ"ט לשנה מעוברת השתמשתי בנוסחא 742a242c-c6ff-4b9c-a5ea-2a445152f72a-image.png
    המובאת כאן

    BAHARAD = 57444 #מולד בהר"ד בחלקים
    MONTH_LEN = 765433 #אורך חודש בחלקים
    MEUBAROT = (3, 6, 8, 11, 14, 17, 0) #שנים מעוברות
    GETRED = 9923 #ג"ט ר"ד
    BATUTAKPAT = 16788 #בט"ו תקפ"ט
    ADU = (1, 4, 6) #לא אד"ו ראש
    
    
    def rosh_h(year):
    	pshuta = not year % 19 in MEUBAROT #שנים פשוטות
    	pre_meuberet = (year - 1) % 19 in MEUBAROT #שנה שאחרי מעוברת
    	months = (235 * (year - 1) + 1) // 19
    	molad = months * MONTH_LEN + BAHARAD #מולד
    	molad_day = ((molad // 1080) // 24) % 7
    	molad_halakim = molad % (24 * 1080)
    	rosh_day = molad_day
    	if molad_halakim > 19439: #מולד זקן
    		rosh_day += 1
    	elif pre_meuberet and molad_day == 2 and molad_halakim > BATUTAKPAT: #בט"ו תקפ"ט
    		rosh_day += 1
    	elif pshuta and molad_day == 3 and molad_halakim > GETRED: #ג"ט ר"ד
    		rosh_day += 1
    	if rosh_day in ADU: #לא אד"ו ראש
    		rosh_day += 1
    	return rosh_day
    
    
    def main():
    	try:
    		year = int(input('enter year: '))
    	except:
    		print('illegal input')
    		return
    	meubere = year % 19 in MEUBAROT
    	rosh_day = rosh_h(year)
    	next_rosh = rosh_h(year + 1)
    	difference = (next_rosh + 7 - rosh_day) % 7
    	if meubere:
    		if difference == 5:
    			cheshvan = kislev = "חסר"
    		elif difference == 6:
    			cheshvan, kislev = "חסר",  "מלא"
    		else:
    			cheshvan = kislev = "מלא"
    
    
    	else:
    		if difference == 3:
    			cheshvan = kislev = "חסר"
    		elif difference == 4:
    			cheshvan, kislev = "חסר", "מלא"
    		else:
    			cheshvan = kislev = "מלא"
    	if meubere:
    		year_type = 'meuberet'
    	else:
    		year_type = 'pshuta'
    	days = {2: "monday", 3: "tuesday", 5: "thursday", 7: "shabat", 0: "shabat"}
    	print('year: {}, {}, rosh hashana on {}, cheshvan - {}, kislev - {}'.format(year, year_type, days[rosh_day], cheshvan, kislev))
    
    
    while True:
    	main()
    

    מתנצל על השגיאות כתיב
    מכניסים שנה במספרים ,כולל אלפים [לדוג' השנה = 5783]
    לא לוקח אחריות להלכה
    נ.ב. אולי בהמשך אני אעשה סקריפט לחישוב המולד האמיתי
    אם יש למישהו את לוח השנים עם הסימנים [מעוברת או פשוטה ,חסרה ,כסדרה או מלאה והיום בו יוצא ראש השנה] בקובץ טקסט אשמח [לצורך השוואה]
    קימפלתי את הסקריפט ,ניתן להורידו מכאן

    Y.Excel.AccessY תגובה 1 תגובה אחרונה
    3
    • Y.Excel.AccessY מנותק
      Y.Excel.AccessY מנותק
      Y.Excel.Access
      השיב להאדם החושב ב נערך לאחרונה על ידי Y.Excel.Access
      #2

      @האדם-החושב
      יש לי קוד VBA ברור שעבדתי איתו הרבה, הבסיס מיובא מפרוג ורק הוספתי עליו קצת, כך שלא אוכל לתת עליו אחריות... אבל תוכל להשוות.
      ממיר תאריך לועזי לעברי, ומציג את זה בגימטריה ב STRING. (=> 'י"ב חשוון תשפ"ג').
      בהמשך הקוד - להציג במספרים, להמיר בחזרה ללועזי, בודק את השנים אם מעוברות, חישוב המולד, וכו'.
      הקובץ להורדה

      Y.Excel.Access @ gmail.com

      האדם החושבה תגובה 1 תגובה אחרונה
      1
      • האדם החושבה מנותק
        האדם החושבה מנותק
        האדם החושב
        השיב לY.Excel.Access ב נערך לאחרונה על ידי
        #3

        @Y-Excel-Access סליחה על הבורות ,אבל איפה אני מריץ את זה?

        Y.Excel.AccessY תגובה 1 תגובה אחרונה
        0
        • Y.Excel.AccessY מנותק
          Y.Excel.AccessY מנותק
          Y.Excel.Access
          השיב להאדם החושב ב נערך לאחרונה על ידי Y.Excel.Access
          #4

          @האדם-החושב
          הנה בקובץ אקסל, אפשר להקיש F-11 להגיע לקוד.

          הפונקציות פועלות גם בתוך אקסל.

          מכיל פונקציות להמרת תאריך לועזי לעברי.xlsm

          Y.Excel.Access @ gmail.com

          תגובה 1 תגובה אחרונה
          1
          • Y.Excel.AccessY Y.Excel.Access התייחס לנושא זה ב
          • Y.Excel.AccessY Y.Excel.Access התייחס לנושא זה ב
          • Y.Excel.AccessY Y.Excel.Access התייחס לנושא זה ב

          בא תתחבר לדף היומי!
          • התחברות

          • אין לך חשבון עדיין? הרשמה

          • התחברו או הירשמו כדי לחפש.
          • פוסט ראשון
            פוסט אחרון
          0
          • דף הבית
          • קטגוריות
          • פוסטים אחרונים
          • משתמשים
          • חיפוש
          • חוקי הפורום