23 أسطر
771 B
Python
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())
|