Afficher les données prévues pour demain

Fermé
Martialvb Messages postés 4 Date d'inscription mercredi 28 mai 2014 Statut Membre Dernière intervention 30 mai 2014 - 28 mai 2014 à 18:37
Martialvb Messages postés 4 Date d'inscription mercredi 28 mai 2014 Statut Membre Dernière intervention 30 mai 2014 - 30 mai 2014 à 17:19
Bonjour

Débutant en java script, je cherche sans résultat à afficher les données prévues pour demain ou plus.
exemple :

Mercredi 28 Mai 2014
Lune ascendante ou montante
Jour racine
Priviliégez et SEMEZ les légumes racine tels que les betterave, carotte, endive, radis, oignon blanc, etc ....
La lune ASCENDANTE ou MONTANTE est favorable aux semis, aux greffes, et aux récoltes des parties aériennes des plantes, (fruits, feuilles, fleurs).

mais comment faire pour afficher les données et conseils du jour et des jours suivants.
if(date==28)

{
index_repos=0 //metre index à zero si index_repos 1 ou 2 ou 3
if(index_repos==0) repos="";
if(index_repos==1) repos="NOEUD LUNAIRE, ne jardinez pas.";
if(index_repos==2) repos="PERIGEE, ne jardinez pas.";
if(index_repos==3) repos="APOGEE, ne jardinez pas.";

index_lune=2 //metre index à zero si index_repos 1 ou 2 ou 3
if(index_lune==1) lune="Lune descendante";
if(index_lune==2){ lune="Lune ascendante ou montante";
}
index_categorie=3 //metre index à zero si index_repos 1 ou 2 ou 3

if(index_categorie==1) categorie="Jour fruit";
if(index_categorie==2) categorie="Jour feuille";
if(index_categorie==3) categorie="Jour racine";
if(index_categorie==4) categorie="Jour fleur";
}
if((index_lune==1) && ( index_categorie==1)) conseil="Privili\351gez et PLANTEZ les l\351gumes fruit tels que les tomates, piments, poivrons, pois, melons, haricots, courges, concombres etc.... ";
if((index_lune==1) && ( index_categorie==2)) conseil="Privili\351gez et PLANTEZ les l\351gumes feuille, tels que les salades, les poireaux, et le persil, romarin, thym, baslic, etc... ";
if((index_lune==1) && ( index_categorie==3)) conseil="Privili\351gez et PLANTEZ les l\351gumes racine tels que les pomme de terre, navet, ail, endive, etc.... ";
if((index_lune==1) && ( index_categorie==4)) conseil="Privili\351gez et PLANTEZ les l\351gumes fleur tels que les choux fleurs, les artichauts, les brocolis et bien sur les fleurs de votre jardin. ";

if((index_lune==2) && ( index_categorie==1)) conseil="Privili\351gez et SEMEZ les l\351gumes fruit tels que les haricots, le ma\357s doux, les pois, SEMEZ sous abri les concombres, melons, courges. ";
if((index_lune==2) && ( index_categorie==2)) conseil="Privili\351gez et SEMEZ les l\351gumes feuille tels que le basilic, cardon, chou-frisé, epinard, fenouil, persil, roquette. ";
if((index_lune==2) && ( index_categorie==3)) conseil="Privili\351gez et SEMEZ les l\351gumes racine tels que les betterave, carotte, endive, oignon blanc, radis, etc .... ";
if((index_lune==2) && ( index_categorie==4)) conseil="Privili\351gez et SEMEZ les l\351gumes fleur tels que les bourrache, brocoli, chou-de-Bruxelles, chou-fleur et chou-rave ";

if(index_lune==1) option="La lune DESCENDANTE est favorable aux plantations, aux boutures, au repiquage, et aux r\351coltes. ";
if(index_lune==2) option="La lune ASCENDANTE ou MONTANTE est favorable aux semis, aux greffes, et aux r\351coltes. ";

et pour l'affichage
todays_date();
document.writeln("<DT><B> "+time_statement+" "+document.day+" "+today.getDate()+" "+document.month+""+annee+"<br> "+date_statement+"<DT>");// JavaScript Document
todays_date();
document.writeln("<DT><B> "+repos+"\<DT>");// JavaScript Document

todays_date();
document.writeln("<DT><B>"+lune+"<br>\ "+categorie+"<br>\ "+conseil+" <br>\ "+option+"\<DT>");// JavaScript Document

Merci de votre aide.
Martial

3 réponses

Martialvb Messages postés 4 Date d'inscription mercredi 28 mai 2014 Statut Membre Dernière intervention 30 mai 2014
28 mai 2014 à 22:28
Bonsoir

je suis certainement un peu confus dans mes propos.
je veux seulement afficher:

Mercredi 28 Mai 2014
Lune ascendante ou montante
Jour racine
Priviliégez et SEMEZ les légumes racine tels que les betterave, carotte, endive, radis, oignon blanc, etc ....
La lune ASCENDANTE ou MONTANTE est favorable aux semis, aux greffes, et aux récoltes des parties aériennes des plantes, (fruits, feuilles, fleurs).


Demain jeudi 29 mai 2014
Lune descendante
Jour fruit
Privili\351gez et PLANTEZ les l\351gumes fruit tels que les tomates, piments, poivrons, pois, melons, haricots, courges, concombres etc....
la lune DESCENDANTE est favorable aux plantations, aux boutures, au repiquage, et aux r\351coltes.

Et peut être d'autres dates et conseils supplémentaires...

merci de votre aide

Martial
0
TibereTchatcha
29 mai 2014 à 00:21
Bonsoir, oui confus mais c'est parce que vous débutez et n'avez pas encore les bons réflexes(avant on disait routine) mais ça viendras :)

Les if à répétition sont une abomination, une erreur d'algorithme typique des débutants car ils ne connaissent que ça, même en programmation procédurale.

Plutôt que d'essayer de comprendre votre besoin je vais essayer de vous aider pour organiser cela correctement.
Je dit ça pas parce que je n'ai pas compris votre but mais qu'il est très mal formulé , en tout cas de manière incomplète en logique humaine comme en logique informatique.

Donc si je veux écrire de façon cohérente votre besoin(rectifiez moi si je me trompes) :

Vous avez une liste de jours de l'année comportant les phases de la lune et correspondante à des conseils de culture.


Si c'est bien cela votre énoncé on va pouvoir déjà y voir plus clair et faire correspondre les listes à des outils de logique de programmation.
En effet l'informatique est là pour se simplifier la vie, la plupart du temps en automatisant des tâches répétitives.
Vous n'envisagez certainement pas de faire 265 if pour les 265 jours de l'année? Imaginez à la sécu s'ils devaient faire autant de if qu'ils ont de personnes immatriculés il faudrait que les informaticiens passent leur temps à écrire des if...
0
TibereTchatcha
29 mai 2014 à 00:34
En programmation on utilise des variables pour stocker les informations que l'on manipule.
Une catégorie de variables bien pratiques c'est le tableau de variables(array en anglais).

Un tableau de variables 'regroupe plusieurs variables' dans un seul 'tiroir' de rangement et permet ainsi de regrouper des variables sur le même thème.
Une petite démonstration/explication ici:

http://www.toutjavascript.com/savoir/savoir09.php3

On voit qu'un tableau(array) est bien un regroupement de variables:
   var tab=new Array;
tab[0]="Lundi";
tab[1]="Mardi";
tab[2]="Mercredi";
tab[3]="Jeudi";
tab[4]="Vendredi";
tab[5]="Samedi";
tab[6]="Dimanche";
var longueur=tab.length;
En laissant de côté la première ligne pour l'instant on peut déjà constater qu'il est facile d'organiser son tableau pour avoir une équivalence de la valeur de son 'tiroir' de rangement et d'un index numérique.
Il existe d'autres formes de tableaux qui sont dits associatifs(par opposition au tableau numérique du 1er exemple) et qui fonctionnent sous la forme clé valeur.

Toujours sur la même page de ce site complet sur Javascript on en trouve un exemple:

var tab=new Array;
tab["Lundi"]="semaine";
tab["Mardi"]="semaine";
tab["Mercredi"]="enfant";
tab["Jeudi"]="semaine";
tab["Vendredi"]="semaine";
tab["Samedi"]="weekend";
tab["Dimanche"]="weekend";

L'exemple utilise les jours de la semaine mais vous pouvez très imaginer cela pour les jours et phases de la lune des prochaines années;
0
Un tableau c'est la liste dont vous avez besoin en logique de programmation.

Vous pouvez retranscrire celui ci en utilisant éventuellement des tableaux à plusieurs dimensions(toujours expliqué sur le même site):

http://www.calendrier-365.fr/lune/phases-de-la-lune.html


Avec la fonction date() vous allez aussi obtenir des tableaux. Il vous suffit de faire correspondre les tableaux et d'ajouter un jour à la date du jour(pour cela vous prenez la date du jour et dans le tableua contenant le jour vous ajoutez 1) pour obtenir la phase de la lune correspondante et il ne vous faut que le if correspondant au phase de la lune obtenues(donc 4 pour croissante, décroissante et pleine ou absence de lune) ou alors utiliser l'instruction switch.

Les tableaux pouvant être long à remplir il y a une autre solution mais un peu plus complexe à appréhender pour un débutant. Si les phases de la lune sont récurrentes en heures vous pouvez utiliser de l'arithmétique et la valeur de date en timestamp linux.
C'est quoi le tmestamp linux? Une explication ici
http://www.timestamp.fr/
C'est un nombre entier en seconde à partir duquel on peut obtenir mois, jour années mais le fait de l'avoir en secondes permet de facilement faire des opérations avec.

Je laisserais la méthode du timestamp de côté(plus précise et rapide-car ne nécessite pas de rentrer toutes les phases de la lune mais uniquement l'écart et la fréquence de celle ci- en programmation mais nécessitant de meilleures connaissances et beaucoup de conversions).

J'espère avoir été clair et que cela vous aidera.
Dites vous que dans le langage de la programmation vous qui débutez n'en êtes qu'au B+A = BA et qu'il y a encore pas mal de 'mots' et de 'grammaire' que vous devez connaître.
Comme chacune des grammaires et mots sont des facilités en plus en général si vous êtes motivé ce sera plus un plaisir qu'une difficulté de les connaître(surtout qu'ils sont identiques à tous les langages de programmation seule l'écriture/syntaxe va changer et encore pas tout le temps).

Les tableaux(et en sont une partie indispensables à connaître.
0
TibereTchatcha
29 mai 2014 à 01:17
Une dernière remarque sur l'affichage qui nous amène à une autre notion d'importance c'est l'objet.

Un objet est un regroupements de particularités et fonctions.
Le tableau crée par
var montableau=new array();
est bien sûr un objet.
Plus de détails ici:
https://www.commentcamarche.net/contents/566-javascript-l-objet-array

La notation objet en javascript est dite "pointée", c.à.d. quo'n utilise le "."(point) pour accéder aux propriétés internes d'un objet.

Vous l'utilisez par exemple lorsque vous écrivez ceci:

document.writeln("mon texte");
Ici il est fait appel à la fonction(ou méthode) writeln de l'objet document.

Sauf que document.write c'est bien gentil pour apprendre mais quand on sait l'utiliser il faut passer à autre chose car c'est beaucoup trop vague. l'objet document étant la page entière il faut 'cibler' un élément en particulier pour écrire dedans.
Cela se fait avec le DOM Javascript (Document Object Model) ou encore mieux avec JQuery utilisant celui ci sous la forme de bibliotéhques(des scripts déjà fait que l'on utilise de façon générique).

Pour le DOM vous avez par exemple ce cours:

http://www.gchagnon.fr/cours/dhtml/introdom.html
où le chapitre II est intitulé . Accès aux éléments et attributs
Accès direct
Accès aux éléments à partir de l'ensemble du document

Qui sont 2 manières d'accéder à un élément de la page(comme une balise de texte pour y mettre ce que l'on veut).

Vous pouvez aussi aborder le DOM par sa même couramment employée du innerHTML comme ceci:

http://www.journaldunet.com/developpeur/tutoriel/dht/040512-javascript-innerhtml-lien.shtml

innerHTML est en désuétude (au profit de JQuery entre autres, ou de l'utilisation des noeuds et du XPATH) mais permet de bien appréhender l'objet pour des fonctions simples comme changer le texte ou les attributs d'une balise.


Voilà car document.write c'est bien limité et réservé pour comprendre mais une fois que vous avez acquis la bonne manipulation de celui ci vous pouvez passer à quelque chose de moins vague que d'écrire dans tout votre document(la page HTML) pour cibler une balise en particulier, ce qui présentes de nombreux avantages.
0
Martialvb Messages postés 4 Date d'inscription mercredi 28 mai 2014 Statut Membre Dernière intervention 30 mai 2014
29 mai 2014 à 14:29
Bonjour Tibère

Sans voix !!! je suis resté sans voix quand j'ai découvert vos mails.
Merci de votre analyse, de vos recherches, de vos explications.
Tout cela demande du temps pour tout "digérer" et mettre en pratique.

Sans voix, mais pas s'en voie !!! merci de m'avoir montré la voie.

A bientôt

Martial
0
Martialvb Messages postés 4 Date d'inscription mercredi 28 mai 2014 Statut Membre Dernière intervention 30 mai 2014
30 mai 2014 à 17:19
Bonjour
J'ai créé un tableau
var jardin=new Array(); 
var col0=new Array; col0[0]="conseil1 "; col0[1]="conseil2"; col0[2]="conseil3";col0[3]="conseil4";col0[4]="conseil5";col0[5]="conseil6";col0[6]="conseil7";col0[7]="conseil8";
var col1=new Array; col1[0]="fruit "; col1[1]="feuille"; col1[2]="fleur";col1[3]="racine";
var col2=new Array; col2[0]="Montante"; col2[1]="descendante "; col2[2]="noeud lunaire ";col2[3]="apogee ";col2[4]="perigee ";
Je l'ai déclaré comme ça
 var jardin=new Array();
Jardin[0]=col0; Jardin[1]=col1; Jardin[2]=col2;Jardin[3]=col3;Jardin[4]=col4;Jardin[5]=col5;Jardin[6]=col6;Jardin[7]=col7;
et comme ça (sans les parenthèses)
 var jardin=new Array;
Jardin[0]=col0; Jardin[1]=col1; Jardin[2]=col2;Jardin[3]=col3;Jardin[4]=col4;Jardin[5]=col5;Jardin[6]=col6;Jardin[7]=col7;

Et j'obtiens ce message de Firebug
ReferenceError: Jardin is not defined


...n[1]=col1; Jardin[2]=col2;Jardin[3]=col3;Jardin[4]=col4;Jardin[5]=col5;Jardin[6]...

Je suis perdu, j'ai passé ma journée à essayer de réparer.
Merci de m'aider

Martial
0