الملفات
hijri-calendar/hijri.py
2026-08-05 10:30:53 +00:00

23 أسطر
771 B
Python

from datetime import date
HIJRI=['Muharram','Safar','Rabi I','Rabi II','Jumada I','Jumada II','Rajab','Shaban','Ramadan','Shawwal','Dhul Qadah','Dhul Hijjah']
class HijriDate:
def __init__(self,y,m,d): self.y,self.m,self.d=y,m,d
def format(self): return f'{self.d} {HIJRI[self.m-1]} {self.y} AH'
def to_hijri(gs):
g=date.fromisoformat(gs)
jd=int(g.toordinal())+1721425
l=jd-1948440+10632
n=int((l-1)/10631)
l=l-10631*n+354
j=(int((10985-l)/5316))*(int((50*l)/17719))+(int(l/5670))*(int((43*l)/15238))
l=l-(int((30-j)/15))*(int((17719*j)/50))-(int(j/16))*(int((15238*j)/43))+29
m=int((24*l)/709)
d=l-int((709*m)/24)
y=30*n+j-30
return HijriDate(y,m,d)
if __name__=='__main__': print(to_hijri('2026-08-05').format())