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())