كود التحويل من الميلادي الى الهجري

 

sDDate est une chaîne

sDDate=(SAI_Date1)    
LIB_SansNom1=ConvertionMiladiHejri((sDDate))

PROCEDURE ConvertionMiladiHejri(DateMiladi est une Date)

SI DateMiladi ="" ALORS DateMiladi = DateSys()

y est un entier = DateMiladi..Année
m est un entier = DateMiladi..Mois
d est un entier = DateMiladi..Jour

jd est un entier

SI ((y > 1582) _OU_ (y = 1582 ET m > 10) _OU_ (y = 1582 ET m = 10 ET d > 14)) ALORS
    jd=PartieEntière((1461*(y+4800+PartieEntière((m-14)/12)))/4)+PartieEntière((367*(m-2-12*(PartieEntière((m-14)/12))))/12)- PartieEntière((3*(PartieEntière((y+4900+PartieEntière((m-14)/12))/100)))/4)+d-32075
SINON
    jd = 367*y-PartieEntière((7*(y+5001+PartieEntière((m-9)/7)))/4)+PartieEntière((275*m)/9)+d+1729777
FIN

l est un entier=jd-1948440+10632
n est un entier=PartieEntière((l-1)/10631)
l=l-10631*n+354
j est un entier=(PartieEntière((10985-l)/5316))*(PartieEntière((50*l)/17719))+(PartieEntière(l/5670))*(PartieEntière((43*l)/15238))
l=l-(PartieEntière((30-j)/15))*(PartieEntière((17719*j)/50))-(PartieEntière(j/16))*(PartieEntière((15238*j)/43))+29
m=PartieEntière((24*l)/709)
d=l-PartieEntière((709*m)/24)
y=30*n+j-30

HMonths_L est une chaîne
SELON m
    CAS 1 : HMonths_L = "محرم"
    CAS 2 : HMonths_L = "صفر"
    CAS 3 : HMonths_L = "ربيع الأول"
    CAS 4 : HMonths_L = "ربيع الثاني"
    CAS 5 : HMonths_L = "جمادي الأولى"
    CAS 6 : HMonths_L = "جمادي الثانية"
    CAS 7 : HMonths_L = "شعبان"
    CAS 8 : HMonths_L = "شعبان"
    CAS 9 : HMonths_L = "رمضان"
    CAS 10 : HMonths_L = "شوال"
    CAS 11 : HMonths_L = "ذي القعدة"
    CAS 12 : HMonths_L = "ذي الحجة"
FIN

DateHejri est une chaîne = d+" "+ HMonths_L +" " + y
sDateHejri2 est une chaîne = d +" / "+ m +" / " + y
RENVOYER DateHejri


إرسال تعليق

0 تعليقات