• Advertisement

Conversion Vers date Héjir

Tout ce qui concerne la version 10 de windev
**Windev est une marque déposée de Pcsoft**

Conversion Vers date Héjir

Messagepar Saidi » Lun Mai 14, 2007 11:29 pm

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
Saidi
Nouveau Membre
 
Messages: 19
Inscription: Lun Nov 27, 2006 9:32 am

Advertisement

Messagepar WD3000 » Mar Mai 15, 2007 9:42 am

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
WD3000
 

Messagepar Saidi » Mar Mai 15, 2007 9:37 pm

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 : http://www.orientalement.com/rnd/calend ... ulman.html
Saidi
Nouveau Membre
 
Messages: 19
Inscription: Lun Nov 27, 2006 9:32 am

Messagepar WD3000 » Mer Mai 16, 2007 9:24 pm

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à
WD3000
 

Messagepar WD3000 » Mer Mai 16, 2007 9:35 pm

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
WD3000
 

Messagepar Saidi » Dim Juin 10, 2007 10:36 pm

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: Tout sélectionner
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;
}
Saidi
Nouveau Membre
 
Messages: 19
Inscription: Lun Nov 27, 2006 9:32 am

Messagepar Zidi » Ven Juin 15, 2007 5:22 pm

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
Zidi
Membre
 
Messages: 80
Inscription: Ven Juin 15, 2007 5:14 pm



  • Advertisement

Retourner vers Forum Windev 10

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités