1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

Conversion Date Miladi (Grégorien) vers Hijri

Discussion dans 'Windev' créé par KASSI, Mar 27, 2018.

  1. KASSI

    KASSI Member

    Inscrit:
    Jan 2, 2018
    Messages:
    21
    J'aime reçus:
    42
    :)
    Code (Text):
    PROCÉDURE ConvertionMiladiHejri(DateMiladi est une Date )
    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
    sJourEnArabe est une chaîne
    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
    nh est un entier=PartieEntière((l-1)/10631)
    l=l-10631*nh+354.367056
    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))+27)
    m=PartieEntière((24*l)/709)
    d=l-PartieEntière((709*m)/24)
    y=30*nh+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
    SELON DateVersChaîne(DateSys(),"Jjjj")
        CAS "Lundi"
            sJourEnArabe = "الأثنين"
        CAS "Mardi"
            sJourEnArabe = "الثلاتاء"
        CAS "Mercredi"
            sJourEnArabe = "الأربعاء"
        CAS "Jeudi"
            sJourEnArabe = "الخميس"
        CAS "Vendredi"
            sJourEnArabe = "الجمعة"
        CAS "Samedi"
            sJourEnArabe = "السبت"
        CAS "Dimanche"
            sJourEnArabe = "الأحــد"
       
        AUTRE CAS
       
    FIN

    //RENVOYER 2 FORMATS
    RENVOYER (" "+sJourEnArabe+"  "+d+"  "+HMonths_L+" "+y+"هـ",NumériqueVersChaîne(d, "02,0f")+"/"+NumériqueVersChaîne(m, "02,0f")+"/"+y)
     
    #1 KASSI, Mar 27, 2018
    Dernière édition: Mar 28, 2018
  2. joker

    joker New Member
    MEMBRE WX

    Inscrit:
    Jan 30, 2018
    Messages:
    0
    J'aime reçus:
    13

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Code (Text):
    PROCÉDURE ConvertionMiladiHejri(DateMiladi est une Date )
    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
    sJourEnArabe est une chaîne
    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
    nh est un entier=PartieEntière((l-1)/10631)
    l=l-10631*nh+354.367056
    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))+27))
    m=PartieEntière((24*l)/709)
    d=l-PartieEntière((709*m)/24)
    y=30*nh+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
    SELON DateVersChaîne(DateSys(),"Jjjj")
        CAS "Lundi"
            sJourEnArabe = "الأثنين"
        CAS "Mardi"
            sJourEnArabe = "الثلاتاء"
        CAS "Mercredi"
            sJourEnArabe = "الأربعاء"
        CAS "Jeudi"
            sJourEnArabe = "الخميس"
        CAS "Vendredi"  
            sJourEnArabe = "الجمعة"
        CAS "Samedi"
            sJourEnArabe = "السبت"
        CAS "Dimanche"
            sJourEnArabe = "الأحــد"
         
        AUTRE CAS
         
    FIN

    //RENVOYER 2 FORMATS
    RENVOYER (" "+sJourEnArabe+"  "+d+"  "+HMonths_L+" "+y+"هـ",NumériqueVersChaîne(d, "02,0f")+"/"+NumériqueVersChaîne(m, "02,0f")+"/"+y)
    Cliquez pour agrandir...
    Chokran

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    :)

    Je découvre Le calendrier hégirien :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
  • suenodesign

    suenodesign Well-Known Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    507
    J'aime reçus:
    732
    Merci Kassi

    Remarque : Il y a une parenthèse de plus à la ligne 17

    Au lieu de :
    l=l-(PartieEntière((30-j)/15))*(PartieEntière((17719*j)/50))-(PartieEntière(j/16))*(PartieEntière((15238*j)/4:relievedface:)+27))

    Remplacer par :
    l=l-(PartieEntière((30-j)/15))*(PartieEntière((17719*j)/50))-(PartieEntière(j/16))*(PartieEntière((15238*j)/4:relievedface:)+27)
     
    joker apprécie ceci.
  • KASSI

    KASSI Member

    Inscrit:
    Jan 2, 2018
    Messages:
    21
    J'aime reçus:
    42
    @

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Merci pour la correction.
    j'ai supprimé un 'Val(ChargeParamètre("AjusteDateHijri",0)' sans parenthèse :), qui permet d'ajuster le différence des jours d'un mois à l'autre.

    la variable 'Val(ChargeParamètreal(("AjusteDateHijri",0)' est modifiable par un SauveParamètre() par une fenêtre like this :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    EDIT :

    l=l-(PartieEntière((30-j)/15))*(PartieEntière((17719*j)/50))-(PartieEntière(j/16))*(PartieEntière((15238*j)/4:relievedface:)+27+Val(ChargeParamètre("AjusteDateHijri",0))
     
    suenodesign et joker aiment ça.
  • Partager cette page

    Chargement...