Bonjour, je suis un passionné d'astronomie et je tente actuellement de calculé les dates des prochaines nouvelles lunes pour pouvoir en deduire par la suite les différentes phases de la lune pendant le mois.
Je me base pour ceci du timestamp et de la formule de copernic qui donne la durée d'une période lunaire. Mon problème c'est que j'ai actuellement une erreur de 2h qui va en augmentant jusqu'a 17h pour l'année 2012. Vous comprendrez qu'une erreur aussi enorme ne me convient pas , mais je trouve pas d'ou vient une erreur pareil. Pourriez vous m'aider.
Merci d'avance
Ci dessous le code que j'ai commenté un maximum.
<?php
$periode = (1/((1/27.322)-(1/365.25))) *24*60*60; //formule de copernic donnant la durée d'une periode lunaire ,environ 29.5j
//time de nouvelle lune 592500
//------------------------------------------------//
//Explication time Stamp
// Le Timestamp est un compteur servant de référence temporelle.
//Il a pour base le 01 Janvier 1970 à 00h00 UTC (soit GMT) et depuis, ce compteur s'incrémente de 1 toutes les secondes.
// La fonction time() renvoi donc le nombre de secondes qui se sont ecoulées depuis le 01/01/1970 à 00h00 GMT.
//Info: La première nouvelle lune suivant le déclenchement du timestamp était le 7 janvier 1970 à 20h35m UTC se qui
// donne 592500 seconde, 6 jour complets + 20h35min sois 6*24*3600+20*3600+35*60=252500
//Le timestamp de cette date est égale au nombre de secondes qui se sont déroulé depuis le 01/01/1970 sois 592500.
$tps_depuis_nouvelle_lune = (time() - 592500) % $periode ;
//Je calcul le temps qui s'est déroulé depuis la dernière nouvelle lune.
//Pour cela je prend le timestamp actuel ( fonction time() ) moins le temps qu'il s'est écoulé entre le déclanchement du timestamp et la première nouvelle lune car en 70 ils ont pas déclenché le timestamp au moment de la nouvelle lune et je fais modulo de la période, se qui me donne le reste en seconde. Avec ca j'ai le nombre de secondes qui s'est ecoulé depuis la dernière nouvelle lune.
echo "le temps passé depuis la dernière nouvelle lune est ". $tps_depuis_nouvelle_lune. " secondes";
$tps_restant_avant_prochaine = $periode - $tps_depuis_nouvelle_lune;
// le temps restant avant la prochaine nouvelle lune <=> temp restant = periode - temp ecoulé
echo "<br>";
echo "time stamp". time(); //J'affiche le timestamp actuel
echo "<br>";
echo " le temps qu'il reste avant la prochaine est ". $tps_restant_avant_prochaine. " secondes";
// J'affiche le temps restant avant la prochaine nouvelle lune.
echo "<br>";
echo "Date et heure de la prochaine nouvelle lune". date('d/m/Y H:i:s', time() + $tps_restant_avant_prochaine);
// J'affiche la date et l'heure de la prochaine nouvelle lune et la j'ai une erreur de 2 heures pour le moi actuelle et qui va en grandissant jusqu'a 17h d'erreur pour l'année 2012. C'est la que j'ai besoin de ton aide. Je peu avoir une erreur en prog comme en astro mais je vois pas ou.
//Site utiles:
//convertisseur timestamp: http://loranger.free.fr/convertisseur/index.php
// Calendrier de la lune : http://www.imcce.fr/page.php?nav=fr/ephemerides/astronomie/phases_lune/index.php
?>