קבלת תאריך עברי בפייתון
-
כיצד ניתן לקבל תאריך עברי של היום/תאריך נתון בפייתון? אני רוצה ספריה ולא API
הספריה של hebcal שוקלת הרבה משום מה ומחזירה שגיאה בהתקנה
אני צריך סטרינג של "יום חמישי כב שבט תשפד" ללא תוספות,
מצאתי את זה
import datetime import hdate h = hdate.HDate(datetime.date(2024, 1, 25), hebrew=True) print(h)
אבל זה מחזיר ביום רגיל
יום חמישי כב בשבט ה' תשפ"דובחגים,
יום חמישי ט"ו בשבט ה' תשפ"ד ט"ו בשבטוזה לא טוב לי...
מספיק לי גם התאריך לבדו, את היום אני יכול לקבל לבד ע"י החלפה של מספר היום שמתקבל לטקסט, משהו כזה
import datetime def get_ordinal_number(number): number = int(number) if number not in range(0, 7): raise ValueError("Number must be between 0 and 6.") ordinals = { 0: "יום ראשון", 1: "יום שני", 2: "יום שלישי", 3: "יום רביעי", 4: "יום חמישי", 5: "יום שישי", 6: "מוצאי שבת", } return ordinals[number] year = 2024 month = 2 day = 6 date_object = datetime.datetime(year, month, day) day_of_week_number = int(date_object.strftime('%w')) print(day_of_week_number) print(get_ordinal_number(day_of_week_number))
-
בינתיים עשיתי קומבינה כזו, אבל מפחיד אותי שבתאריכים מסוימים זה יעשה בעיות..
import re import hdate import datetime def get_hebrew(current_date): year = current_date.year month = current_date.month day = current_date.day try: gregorian_date = datetime.date(year, month, day) hebrew_date = hdate.HDate(gregorian_date, hebrew=True) return hebrew_date except requests.exceptions.RequestException as e: print(f"Error: {e}") return None hebrew = f'{get_hebrew(current_time)}' index_tash = hebrew.find('ה\' תש') if index_tash != -1: hebrew = hebrew[:index_tash + 8] else: hebrew = hebrew file_name = f'{hebrew}.wav' file_name = file_name.replace("ה' ת", "ת") sanitized_filename = re.sub(r'[\/:*?"<>|]', '', file_name) sanitized_filename = re.sub(r'[\u0591-\u05C7]', '', sanitized_filename) print(sanitized_filename)
-
@אביי את זה ניסית? https://github.com/simlist/pyluach
ראה גם https://www.david-greve.de/luach-code/jewish-python.html@אביי כתב בקבלת תאריך עברי בפייתון:
הספריה של hebcal שוקלת הרבה משום מה ומחזירה שגיאה בהתקנה
מה השגיאה? אצלי תקין
בכל מקרה אם שום דבר אחר לא יעבוד אתה יכול להשתמש בhdate כמו שכתבת בהתחלה, ולקצוץ את התוספת של החגים עם regex -
@אביי, את היום בשבוע אתה יכול לקבל בדרך קצרה יותר:
from datetime import datetime weekday_int = datetime.now().weekday() weekday_name = ("מוצאי שבת", "שישי", "חמישי", "רביעי", "שלישי", "שני", "ראשון")[weekday_int]
כתבתי בפייתון ממיר תאריך לועזי לעברי (ולהיפך).
אם תרצה אשלח לך. -
זה קצת ישן. אבל למי שיתקל בפוסט בעתיד, ניתן להשתמש בספריית pyluach:
התקנה:
pip install pyluach
הקוד המתאים:
from pyluach import dates import datetime # קבלת התאריך הלועזי הנוכחי today_gregorian = datetime.date.today() # המרת התאריך הלועזי לתאריך עברי hebrew_date = dates.GregorianDate(today_gregorian.year, today_gregorian.month, today_gregorian.day).to_heb() # הצגת התאריך העברי בפורמט עברי hebrew_date_str = hebrew_date.hebrew_date_string() print(f"התאריך העברי היום הוא: {hebrew_date_str}")
התוצאה במקרה שלנו:
התאריך העברי היום הוא: י״ד כסלו תשפ״ה