Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Conversion Vers date Héjir
#1
Bonjour

je cherche une règle de conversion entre le calendrier grégorien (G), et le calendrier hégirien (H) :

j'ai fait une recherche sur le net j'ai trouve la formule pour trouve les années, moi je cherche a convertir une date entier (G) en date (H) JJ/MM/AAAA

pour les années la regèle est la suivante :
G=H+622-(H/33)

H=G-622+[(G-622)/32]

Ainsi, pour convertir l’an 2000 en occident :

H=2000-622+[(2000-622)/32]=1421

Merci
Répondre
#2
Il n'est pas possible de récupérer des dates antérieures au 14 octobre 1582 (le passage du calendrier Julien au calendrier grégorien ne sera pas pris en compte).

et donc pour le calendrier hégirien je pense que ça ne peut pas marcher puisque 2000=1421
Répondre
#3
Pas tout a fait wd3000, il existe sur internet plusieurs site qui permet la conversion du calendrier géorgien vers calendrier héjir (musulman ) avec plus ou moins un jour de décalage selon les pays.

Exemple : <!-- m --><a class="postlink" href="http://www.orientalement.com/rnd/calendrier-musulman.html">http://www.orientalement.com/rnd/calend ... ulman.html</a><!-- m -->
Répondre
#4
Ce que je voulais dire c'est que tu ne pourra pas utiliser de date WD.
Le problème de la conversion ne vient pas du calcul de l'année mais du recalcul des jours car les mois lunaire ne correspondent pas au mois solaires.
Peut-être que le site dont tu as fourni le lien pourrait te donner la formule de calcul
A mon avis il faut calculer le nombre de jours d'une date puis enlever le nombre de jour jusqu'à l'héjir et recalculer le reste en mois lunaire.
Déslé je n'ai pas le temps de faire celà
Répondre
#5
J'ai posté un peu vite
Ici tu trouveras une formule en SPIP
A toi de convertir en WD
http://www.spip-contrib.net/Un-filtre-pour-DATE-la-date

mais celà confirme le post précédent: pas de date WD
Répondre
#6
Merci WD3000

J'ai récupère le code j'ai essaye de le convertir en WD mais très difficile peut être quelqu'un pour m'aide a le convertir
voici le code de la fonction :

Code :
function hijri($mytime, $set='arabic') {
    $myyear = substr($mytime,0,4);
    $mymonth = substr($mytime,5,2);
    $myday = substr($mytime,8,2);
    $myhour = substr($mytime,11,2);
    $mymin = substr($mytime,14,2);
    $mysec = substr($mytime,17,2);
    $times = mktime($myhour, $mymin, $mysec, $mymonth, $myday, $myyear);
    $TDays=round($times/(60*60*24));
    $HYear=round($TDays/354.37419);
    $Remain=$TDays-($HYear*354.37419);
    $HMonths=round($Remain/29.531182);
    $HDays=$Remain-($HMonths*29.531182);
    $HYear=$HYear+1389;
    $HMonths=$HMonths+10;
    $HDays=$HDays+23;
    if ($HDays>29.531188 and round($HDays)!=30){
        $HMonths=$HMonths+1;
        $HDays=floor($HDays-29.531182);
    }else{
        $HDays=floor($HDays);
    }
    if ($HMonths>12){
        $HMonths=$HMonths-12;
        $HYear=$HYear+1;
    }
    $HMonths_table['arabic'] = Array('',
        'محرم',
        'صفر',
        'ربيع الأول',
        'ربيع الثاني',
        'جمادى الأولى',
        'جمادى الآخرة',
        'رجب',
        'شعبان',
        'رمضان',
        'شوال',
        'ذو القعدة',
        'ذو الحجة');

        $HMonths_table['latin'] = Array('',
        'Muharram',
        'Safar',
        'Rabi\' al-awwal',
        'Rabi\' al-thani',
        'Jumada al-oula',
        'Jumada al-akhira',
        'Rajab',
        'Sha\'ban',
        'Ramadan',
        'Shawwal',
        'Dhu al-Qi\'dah',
        'Dhu al-Hijjah');

        $HMonths_L = $HMonths_table[$set][$HMonths];
    $hijri_date = $HDays." ".$HMonths_L." ".$HYear;
    return $hijri_date;
}
Répondre
#7
Essayer ce code


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 = "Muharram"
CAS 2 : HMonths_L = "Safar"
CAS 3 : HMonths_L = "Rabi al-awwal"
CAS 4 : HMonths_L = "Rabi al-thani"
CAS 5 : HMonths_L = "Jumada al-oula"
CAS 6 : HMonths_L = "Jumada al-akhira"
CAS 7 : HMonths_L = "Rajab"
CAS 8 : HMonths_L = "Shaaban"
CAS 9 : HMonths_L = "Ramadan"
CAS 10 : HMonths_L = "Shawwal"
CAS 11 : HMonths_L = "Dhu al-Qidah"
CAS 12 : HMonths_L = "Dhu al-Hijjah"
FIN

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

Info(DateHejri,DateHejri2)//vous pouvez utiliser un renvoyer DateHejri ou DateHejri2
Répondre
#8
Bonjour,
Ce code de M. ZIDI donne toujours une même date : 15 Jumada al-oula 1435 et 15 / 5 / 1435

Quelqu'un peut expliquer pourquoi ? Merci.
Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  l'aperçu date début et date fin dans ETAT ikbeldh 6 4,597 22-02-2013, 01:16 PM
Dernier message: ikbeldh
  Conversion des chiffres en lettres sharon 2 2,457 16-02-2009, 12:32 PM
Dernier message: sharon
  Conversion heure en numérique dimi974 3 2,237 01-02-2009, 05:35 PM
Dernier message: dimi974
  sélection et conversion tableau COLOMBAT 2 1,778 27-08-2008, 06:57 AM
Dernier message: Samifred
  Calendrier Popup vers Date faithnove 5 2,394 07-07-2008, 02:05 PM
Dernier message: Samifred
  [RESOLU]Transformer une date du type JJ/MM/AAAA vers type... jo_la_pasteque 33 18,979 22-04-2008, 12:23 PM
Dernier message: hanen
  Conversion chiffre en lettres faithnove 12 4,236 21-01-2008, 09:14 AM
Dernier message: faithnove
  date vers mois abdoulay 5 1,637 19-11-2007, 09:01 AM
Dernier message: abdoulay
  Conversion Numérique vers chaîne en cadrant avec des zéros ouchehad 2 1,177 03-10-2007, 09:36 AM
Dernier message: ouchehad
  Aide sur conversion de chiffre en lettre Guest 2 1,801 17-03-2007, 06:18 PM
Dernier message: tunidev_mybb_import2

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)