begin process at 2010 03 21 11:04:28
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date & Heure

 > LES PHASES DE LA LUNE

LES PHASES DE LA LUNE


 Information sur la source

Note :
Aucune note
Catégorie :Date & Heure Classé sous :algorithme, lune, calendrier Niveau :Initié Date de création :02/03/2008 Date de mise à jour :18/03/2009 13:49:16 Vu / téléchargé :11 245 / 348

Auteur : lgh

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Calcul des phases de la lune entre le 06/01/2000 et le 31/12/2199.
Controlé sous IE 7 et Opéra 9.26

Source

  • // Fichier JavaScript LGH
  • function calcul() {
  • if (text3.value == '' || text3.value < 2000 || text3.value > 2199 || text1.value == '' || text1.value < 1 || text1.value > 31 || text2.value == '' || text2.value < 1 || text2.value > 12) alert('Les calculs ne sont faits que pour des dates libéllées normalement et comprises en le 06/01/2000 et le 31/12/2199 !');
  • else if (text2.value == 2 && text1.value > 29 || text2.value == 4 && text1.value > 30 || text2.value == 6 && text1.value > 30 || text2.value == 9 && text1.value > 30 || text2.value == 11 && text1.value > 30) alert('Les calculs ne sont faits que pour des dates libéllées normalement et comprises en le 06/01/2000 et le 31/12/2199 !');
  • else if (text2.value == 2 && eval(text3.value / 4) != Math.round(eval(text3.value / 4)) && text1.value > 28) alert('Les calculs ne sont faits que pour des dates libéllées normalement et comprises en le 06/01/2000 et le 31/12/2199 !');
  • else {
  • a = eval(text1.value);
  • b = eval(text2.value - 1);
  • if (b == 11) c = 334;
  • if (b == 10) c = 304;
  • if (b == 9) c = 273;
  • if (b == 8) c = 243;
  • if (b == 7) c = 212;
  • if (b == 6) c = 181;
  • if (b == 5) c = 151;
  • if (b == 4) c = 120;
  • if (b == 3) c = 90;
  • if (b == 2) c = 59;
  • if (b == 1) c = 31;
  • if (b < 1) c = 0;
  • e = eval(text3.value - 2000);
  • f = e / 4;
  • if (f == Math.floor(f) && text2.value > 2) f = Math.floor(f) + 1;
  • else f = Math.floor(f);
  • g = e * 365 + f + a + c;
  • if (text2.value > 2 && text3.value >= 2100) g = g - 1; //nbr de jours entiers qui sépare la date en cours du 1er janvier 2000 0h UTC
  • h = eval(((g - 5.76) * 86400) / 2551443); //Correction par rapport à la date de la nouvelle lune du 6/01/00, traduction des jours en seconde et calcul du nbr de lunaisons.
  • i = Math.round((h - Math.floor(h)) * 100) / 100;
  • if (i <= 0.05 || i >= 0.95) i = "P&eacute;riode de nouvelle lune<br\/><br\/><img src=\"lune1.jpg\" name=\"img73\" alt=\"P&eacute;riode de nouvelle lune\">";
  • if (i <= 0.55 && i >= 0.45) i = "P&eacute;riode de pleine lune<br\/><br\/><img src=\"lune3.jpg\" name=\"img74\" alt=\"P&eacute;riode de pleine lune\">";
  • if (i < 0.45 && i > 0.05) i = "P&eacute;riode de lune ascendante<br\/><br\/><img src=\"lune2.jpg\" name=\"img75\" alt=\"P&eacute;riode de lune ascendante\">";
  • if (i < 0.95 && i > 0.55) i = "P&eacute;riode de lune descendante<br\/><br\/><img src=\"lune4.jpg\" name=\"img76\" alt=\"P&eacute;riode de lune descendante\">";
  • document.getElementById('div').innerHTML =
  • '<P>Somme des jours entiers ou non du mois écoulé à la date visée = ' + a + '</P>' +
  • '<P>Somme des mois entiers de la date visée = ' + b + '</P>' +
  • '<P>Somme des jours des mois entiers de la date visée sans 29/02 avec étalonnage sur le 06/01/2000 = ' + c + '</P>' +
  • '<P>Somme des années depuis 2000 jusqu\'à la date choisie = ' + e + ' ans</P>' +
  • '<P>Somme des années bisextiles avant la date visée = ' + Math.floor(f) + ' soit ' + f + ' jours de plus.</P>' +
  • '<P>Total des jours entiers ou non de 01/01/2000 jusqu\'à la date visée y compris les 29/02 = ' + g + '</P>' +
  • '<P>Nombre de lunaisons = ' + Math.round(h * 100) / 100 + '</P>' +
  • '<P>Phase de la lune à la date visée</P>' + i;
  • }
  • }
// Fichier JavaScript LGH

function calcul() {
    if (text3.value == '' || text3.value < 2000 || text3.value > 2199 || text1.value == '' || text1.value < 1 || text1.value > 31 || text2.value == '' || text2.value < 1 || text2.value > 12) alert('Les calculs ne sont faits que pour des dates libéllées normalement et comprises en le 06/01/2000 et le 31/12/2199 !');
    else if (text2.value == 2 && text1.value > 29 || text2.value == 4 && text1.value > 30 || text2.value == 6 && text1.value > 30 || text2.value == 9 && text1.value > 30 || text2.value == 11 && text1.value > 30) alert('Les calculs ne sont faits que pour des dates libéllées normalement et comprises en le 06/01/2000 et le 31/12/2199 !');
    else if (text2.value == 2 && eval(text3.value / 4) != Math.round(eval(text3.value / 4)) && text1.value > 28) alert('Les calculs ne sont faits que pour des dates libéllées normalement et comprises en le 06/01/2000 et le 31/12/2199 !');
    else {
        a = eval(text1.value);
        b = eval(text2.value - 1);
        if (b == 11) c = 334;
        if (b == 10) c = 304;
        if (b == 9) c = 273;
        if (b == 8) c = 243;
        if (b == 7) c = 212;
        if (b == 6) c = 181;
        if (b == 5) c = 151;
        if (b == 4) c = 120;
        if (b == 3) c = 90;
        if (b == 2) c = 59;
        if (b == 1) c = 31;
        if (b < 1) c = 0;
        e = eval(text3.value - 2000);
        f = e / 4;
        if (f == Math.floor(f) && text2.value > 2) f = Math.floor(f) + 1;
        else f = Math.floor(f);
        g = e * 365 + f + a + c;
        if (text2.value > 2 && text3.value >= 2100) g = g - 1; //nbr de jours entiers qui sépare la date en cours du 1er janvier 2000 0h UTC
        h = eval(((g - 5.76) * 86400) / 2551443); //Correction par rapport à la date de la nouvelle lune du 6/01/00, traduction des jours en seconde et calcul du nbr de lunaisons.
        i = Math.round((h - Math.floor(h)) * 100) / 100;
        if (i <= 0.05 || i >= 0.95) i = "P&eacute;riode de nouvelle lune<br\/><br\/><img src=\"lune1.jpg\" name=\"img73\" alt=\"P&eacute;riode de nouvelle lune\">";
        if (i <= 0.55 && i >= 0.45) i = "P&eacute;riode de pleine lune<br\/><br\/><img src=\"lune3.jpg\" name=\"img74\" alt=\"P&eacute;riode de pleine lune\">";
        if (i < 0.45 && i > 0.05) i = "P&eacute;riode de lune ascendante<br\/><br\/><img src=\"lune2.jpg\" name=\"img75\" alt=\"P&eacute;riode de lune ascendante\">";
        if (i < 0.95 && i > 0.55) i = "P&eacute;riode de lune descendante<br\/><br\/><img src=\"lune4.jpg\" name=\"img76\" alt=\"P&eacute;riode de lune descendante\">";
        document.getElementById('div').innerHTML =
        '<P>Somme des jours entiers ou non du mois écoulé à la date visée = ' + a + '</P>' +
        '<P>Somme des mois entiers de la date visée = ' + b + '</P>' +
        '<P>Somme des jours des mois entiers de la date visée sans 29/02 avec étalonnage sur le 06/01/2000 = ' + c + '</P>' +
        '<P>Somme des années depuis 2000 jusqu\'à la date choisie = ' + e + ' ans</P>' +
        '<P>Somme des années bisextiles avant la date visée = ' + Math.floor(f) + ' soit ' + f + ' jours de plus.</P>' +
        '<P>Total des jours entiers ou non de 01/01/2000 jusqu\'à la date visée y compris les 29/02 = ' + g + '</P>' +
        '<P>Nombre de lunaisons = ' + Math.round(h * 100) / 100 + '</P>' +
        '<P>Phase de la lune à la date visée</P>' + i;
    }
}

 Conclusion

Un exemple dans le zip

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

21 mars 2008 14:12:31 :
Simplification du code. Niveau de précision du calcul supérieur
03 avril 2008 16:23:24 :
Niveau de précision rendu à 24 h
18 mars 2009 13:49:17 :
Alertes diverses et paradoxalement, un calcul d'arrondi afin de gagner en précision

 Sources du même auteur

Source avec Zip UNE CALCULATRICE
Source avec Zip PALETTE DE COULEURS
Source avec Zip RECHERCHER ET REMPLACER UN MOT DANS UN TEXTE
Source avec Zip LE MENU FICHIER DES APPLICATIONS
Source avec Zip UN MENU, UNE BARRE DE MENUS!

 Sources de la même categorie

Source avec Zip CHRONOMÈTRE AMÉLIORÉ par Kolosta
Source avec Zip SLEEP() SANS BOUCLE D'ATTENTE CONSOMMATRICE par Phildepantin
Source avec Zip AFFICHAGE DE L'HEURE ET DU FUSEAU HORAIRE (TIMEZONE) SUR LA ... par navylav2
Source avec Zip Source avec une capture HORLOGE TRIPLE AFFICHAGE AU FORMAT AM/PM/24H/DST par sofiane1234
Source avec Zip Source avec une capture HORLOGE NUMÉRIQUE EN JAVASCRIPT, COMPATIBLE IE ET FF par bad_dark_spirit

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture MICRO-CALENDAR par amrounix
Source avec une capture AFFICHE UN CALENDRIER SOUS UNE ZONE DE SAISIE par amrounix
Source avec Zip CALENDRIER AVEC FÊTES LÉGALES FRANÇAISES par pabbati
Source avec Zip Source avec une capture TRI DE TABLEAU, ALGORITHME LES PLUS CONNUS IMPLÉMENTÉS (FUSI... par the_wwt
Source avec Zip 2 VERSIONS DE CALENDRIER DATEUR par jperre

Commentaires et avis

Commentaire de jantosze le 03/03/2008 19:15:04

Salut,

Pour faire fonctionner ton script, j'ai:
pour accéder à la fonction calcul(),
<form action="calcul()" >
<input type="text" id="text1" size="2" maxlength="2" value="06" />
<input type="text" id="text2" size="2" maxlength="2" value="01" />
<input type="text" id="text3" size="4" maxlength="4" value="2000" />&nbsp;<input type="button" value="Calcul" onclick="calcul();" />
</form>
Dans la fonction calcul():
function calcul()
{
var t3 = document.getElementById("text3").value;
var t1 = document.getElementById("text1").value;
var t2 = document.getElementById("text2").value;
.... et donc substituer tous les appels textX par tX
}
Bon ca fonctionne ....

cdt
JAN

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

un calendrier bien special [ par kabouya ] bonjour,j'ai besoin d'un calandrier javascript qui me donne uniquement le debut et la fin de chaque mois. par exemple une entete on l'on peu choisir l horloge/calendrier [ par nlola28 ] kikou...je suis a la recherche du script pour faire des petite horloges avec des imges sur laquelle apparait la date et lheure atuel...mercinadine DateTimePicker [ par theboboteam ] Bonjour, peut on utiliser l'activeX DateTimePicker en javascript pour afficher un calendrier dans mes pages htm?j'ai bien vue des sources de calendrie Une question pour mon calendrier [ par syltouille ] Bonjour et bonne annee tout le monde.Mon premier souci de cette annee est:J'ai realise un calendrier en PHP avec des images pour chaque jour.- Je voud téléchargement d'un calendrier en javascript [ par FIFI69 ] il n'y a rien dans le téléchargement, seulement des raccourcis et des liens. Javascrip et Requete SQL [ par chris81 ] bonjour,je possede un calendrier en javascript qui me retourne un jour, un mois et une annee. Comment puis je faire pour inserer ce que me retourne c calendrier dans infobulle !!!! [ par roninou ] j'essai desesperement de mettre une calendrier dans une infobulle pour que l'utilisateur puisse choisir la date qu'il veut.j'ai deja le code pour crée Calendrier [ par asx9 ] Bonjour,je cherche un calendrier qui puisse me donner le numéro de la semaine selon la date choisie.merci pour votre aide,asx9 calendrier [ par xavierclavien ] au sujet du code du calendrier popup source N°20491 le popup s'affiche mais ne comporte plus de dates.quelqu'un aurait-il connu les mêmes problèmes et Fermeture de popup et envoi d'informations [ par Rankin ] Salut &#224; tous. Je bosse actuellement sur la r&#233;alisation d'un site, qui contient une partie administration pour g&#233;rer des bases de donn&


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales