ai-content-maker/.venv/Lib/site-packages/dateparser/calendars/hijri_parser.py

57 lines
1.5 KiB
Python
Raw Normal View History

2024-05-03 04:18:51 +03:00
from hijri_converter import convert
from dateparser.calendars import non_gregorian_parser
class hijri:
@classmethod
def to_gregorian(cls, year=None, month=None, day=None):
g = convert.Hijri(year=year, month=month, day=day, validate=False).to_gregorian()
return g.datetuple()
@classmethod
def from_gregorian(cls, year=None, month=None, day=None):
h = convert.Gregorian(year, month, day).to_hijri()
return h.datetuple()
@classmethod
def month_length(cls, year, month):
h = convert.Hijri(year=year, month=month, day=1)
return h.month_length()
class HijriDate:
def __init__(self, year, month, day):
self.year = year
self.month = month
self.day = day
def weekday(self):
for week in hijri.monthcalendar(self.year, self.month):
for idx, day in enumerate(week):
if day == self.day:
return idx
class hijri_parser(non_gregorian_parser):
calendar_converter = hijri
default_year = 1389
default_month = 1
default_day = 1
non_gregorian_date_cls = HijriDate
_time_conventions = {
'am': ["صباحاً"],
'pm': ["مساءً"],
}
@classmethod
def _replace_time_conventions(cls, source):
result = source
for latin, arabics in cls._time_conventions.items():
for arabic in arabics:
result = result.replace(arabic, latin)
return result