Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème d'erreur pour calculer les phases de la lune [ Divers / Divers ] (soulearth)

dimanche 11 février 2007 à 16:13:15 | Problème d'erreur pour calculer les phases de la lune

soulearth

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


?>

lundi 12 février 2007 à 10:12:27 | Re : Problème d'erreur pour calculer les phases de la lune

Springer

Réponse acceptée !
bonjour,
je ne suis pas suffisament calé pour d'aider en astronomie, mais je pense que ta différence provient de la précision de la durée d'une phase.
j'ai effectué une recherche google et j'ai trouvé un lien qui peut t'interresser.
[ Lien ]

lundi 12 février 2007 à 13:21:20 | Re : Problème d'erreur pour calculer les phases de la lune

juki_webmaster

Membre Club
Salut, Je suis dans le meme cas que Springer. Je peux que te donner quelques conseilles : Eviter de faire un integer overflow et faire gaff a la directive du PHP.ini lorsqu'il est question de la precission des floats (nombre a virgule). http://fr.php.net/manual/fr/ini.core.php#ini.precision Le deuxieme cas ce regle facilement avec ini_set() Si c'est le premier cas qui te coinse, http://fr.php.net/manual/fr/ref.gmp.php . http://fr.wikipedia.org/wiki/D%C3%A9passement_de_tampon PHP auras tentance non pas à faire un segfault, mais a faire un arrondi plus ou moins sympa.



Cette discussion est classé dans : erreur, timestamp, time, prochaine, lune


Répondre à ce message

Sujets en rapport avec ce message

requete DELETE [ par blinix123 ] Re all ^^ // on supprime toutes les entrées dont le timestamp est plus vieux que 15 minutes// On stocke dans une variable le timestamp qu'il était i codes erreur PHP [ par malalam ] Hello tout le monde, petite requête simple : si quelqu'un sait où trouver une liste (ou un moyen de trouver cette liste) des codes erreurs php, je su Erreur: parse error unexpected $end [ par rouliendelavegas ] BonjourParse error: syntax error, unexpected $end in Voila l'erreur que j'ai en executant ma page licence.php , qui inclut le fichier function_licence Afficher seulement le detail d'une erreur [ par 3xodius55 ] Bonjour,Voilà le problème : je voudrai pouvoir afficher à l'ecran la cause d'une erreur sans son type, ni fichier concerné et numéro de ligne.Voici un URGENT ! Problème session [ par yebs ] bonjour, j'ai un gros problème !!je développe un site en php avec easyphp 1.7Le site est structuré avec un système de session (admin ou user) et ca ma Probléme d'Affichage d'erreur perso pour formulaire dans ma classe php [ par tibine974 ] Bien le bonjour !!Voilà je souhaitais réaliser une petite classe en php pour gérer mes formulaires, mais mon probléme vient de l'affichage des message Set_time_limit est-il partagé ? [ par grosteack ] Bonjour à tous !J'ai une question : set_time_limit() est-il partagé à travers les différentes pages d'une même session ?Je m'explique : J'ai une page Verification erreur 404 [ par audayls ] Bonjour,J'aimerai créer un script PHP qui puissent vérifier si un serveur autorise la personnalisation de l'erreur 404.Donc je crée un fichier "test.p mes erreur de ce marque pas espace membre [ par speedylol ] bonjour voici , j ai un script membres que j'ai modifier a mon goût mes les erreur de fonction pas je vois pas pq seriez vous m'eclairez la dessus svp Le saviez vous ? [ par Teclis01 ] le 06/07/2006 correspond au timestamp :1149631200le 07/07/2006 correspond au timestamp :1152223200Soit une difference de 2592000 pour 1 jour tout pile


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,20 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.