Page 1 sur 1

[REGLE]Anniversaire membres.

Posté : 19 mars 2006, 15:15
par vins1892
Bonjour à tous,

je souhaite afficher chaque jour la date d'anniversaire d'un membre et le jour, ms mon hébergeur ne supporte pas le php ...

J'ai récupéré un javascript pour afficher le saint du jour que je souhaite modifier (associer à chaque n° de jour un anniversaire manuellement), mais je me demandais s'il n'y avait pas un autre moyen que celui-là ?

Voici un bout de code:

Code : Tout sélectionner

var date_statement=""; var time_statement=""; var today=new Date(); var month=""; var day=""; function todays_date() { var month=today.getMonth(); var day_of_week=today.getDay(); date_statement="" document.month="" month++; // So it's now between 1 - 12. if(month==1) { january(today.getDate()); document.month="Janvier "; } if(month==2) { february(today.getDate()); document.month="Février "; } if(month==3) { march(today.getDate()); document.month="Mars "; } if(month==4) { april(today.getDate()); document.month="Avril "; } if(month==5) { may(today.getDate()); document.month="Mai "; } if(month==6) { june(today.getDate()); document.month="Juin "; } if(month==7) { july(today.getDate()); document.month="Juillet "; } if(month==8) { august(today.getDate()); document.month="Août "; } if(month==9) { september(today.getDate()); document.month="Septembre "; } if(month==10) { october(today.getDate()); document.month="Octobre "; } if(month==11) { november(today.getDate()); document.month="Novembre "; } if(month==12) { december(today.getDate()); document.month="Décembre "; } document.day="" if(day_of_week==0) document.day=" Dimanche"; if(day_of_week==1) document.day=" Lundi"; if(day_of_week==2) document.day=" Mardi"; if(day_of_week==3) document.day=" Mercredi"; if(day_of_week==4) document.day=" Jeudi"; if(day_of_week==5) document.day=" Vendredi"; if(day_of_week==6) document.day=" Samedi"; } function january(date) { if(date==1) date_statement="Nouvel AN"; if(date==2) date_statement="Saint Basile"; if(date==3) date_statement="Sainte Genièvre"; if(date==4) date_statement="Saint Odilon"; if(date==5) date_statement="Saint Edouard"; if(date==6) date_statement="Sainte Mélaine"; if(date==7) .... .... todays_date(); document.writeln("<DT><B>"+time_statement+" "+document.day+" "+today.getDate()+" "+document.month+"<br> "+date_statement+"<DT>")

Posté : 19 mars 2006, 15:28
par Truc
Salut,
où sont stockés les données des membres ?

Posté : 19 mars 2006, 15:31
par vins1892
Dans un fichier Excel:

nom, date anniversaire sous le formar 75/04/25 J'essaye de trouver la fct Excel me permettant de calculer le xème jour de l'année ...

D'avance, merci pourton aide.

PS: lenombre de membre est plus ou moins fixe d'une année à l'autre et est faible (70 max) ...

Posté : 19 mars 2006, 17:08
par Truc
les membres doivent s'identifier je présume (sinon ce ne serait pas un membre :lol: ) arrives tu as récupérer des données d'excel vers la page html ?

Posté : 19 mars 2006, 23:46
par vins1892
Non, les membres ne doivent pas s'identifier ..

je fais le site d'un club de tennis de table et j'ai la liste des membres du club avec leur date de naissance dans un fichier Excel.

Je souhaite juste afficher en 1ère page: aujourd'hui le XXX, c'est l'annif de XX, il a XXX.

Suis ok pour faire les calculs en manuel sous Excel, cette liste de membres étant figée dès le début de saison pour 1 an ...

Merci pour vos idées.

PS: je prenais l'exemple du code pour le Saint du jour, si un autre convient mieux, je suis preneur ...

Posté : 20 mars 2006, 00:10
par Truc
Le problème c'est d'extraire les données excel pour les exploiter dans une page html sans php. :-k

sinon tout ce qui est nécesaire pour les anniversaires est:
var today=new Date();
var month=today.getMonth();
var day_of_week=today.getDay(); 

Posté : 20 mars 2006, 13:28
par vins1892
Je peux exporter le tableau Excel dans une page HTML de cette façon:

Jacques Dupont, 26/04/1985, 116;
Pierre Durant, 03/02/1974, 34;
.....

nom prénom, date anniversaire, Xème jour de l'année.

Je pense à un truc, au lieu de m'amuser à compter le Xème jour de l'année, je ne peux pas simplement comparer la date anniversaire avec la date du jour, et renvoyer un msge bon annif à si la date du jour = date annif ?

J'y connais pas grand chose en javascript, mais ce serait possible cela ?

Posté : 20 mars 2006, 19:59
par Truc
Je pense à un truc, au lieu de m'amuser à compter le Xème jour de l'année, je ne peux pas simplement comparer la date anniversaire avec la date du jour, et renvoyer un msge bon annif à si la date du jour = date annif ?
C'est ce qui est le plus vraisemblable, proposition:
function anniv(str)
{
	var chaine=str.split(" ");
	
	var date=chaine[2].split("/");
	
	var jour = date[0];
	var mois = date[1];
	  
	var today=new Date();
	var month=today.getMonth()+1;
	var day=today.getDate();
	
	if((month == mois) && (day == jour))
		alert(" C'est laniversaire de "+chaine[0]+" "+chaine[1]);
}
Et l'appel:
<a href="#" onClick="anniv('Pierre Durant, 20/03/1974, 34;')">Anniv</a>
C'est juste un exemple de fonction que tu peux appliquer, pour verifier tous les utilisateur tu dois faire une boucle. Pour afficher à l'écran au lieu d'une alerte regardes du coté de innerHTML

Posté : 21 mars 2006, 23:36
par vins1892
Euh, je suis assez novice en javascript et je n'ai pas trouvé d'autre moyen que d'associer la date d'anniversaire à un jour du mois ...

Bon, c'est pas hyper automatique comme solution, ms ça fonctionne ...

Y aurait-il un moyen de faire ceci:

Je positionne différents évenements de la façon suivante:

Code : Tout sélectionner

function november(date) { if(date==1) date_statement="pas d'anniversaire à fêter aujourd'hui"; if(date==2) date_statement="nous fêtons l'anniversaire de X aujourd'hui"; } .... .... function december(date) { if(date==1) date_statement="soirée trucmuche"; if(date==2) date_statement=""; }
Et je demanded'afficher les x prochains évènements ?

Posté : 22 mars 2006, 00:14
par Truc
Je ne comprend plus très bien où tu veux en venir... à la base tu dis que tu récupères des données sous cette forme:
Jacques Dupont, 26/04/1985, 116;
Pierre Durant, 03/02/1974, 34;
alors je fournis une fonction qui vérifie si l'une des date ci-dessus correspond à la date du jour pour afficher "Anniversaire" le cas échéant.

La tu veux un événement par mois donc des textes différents ?

Tu peux toujours modifier la fonction pour ne vérifier que la date passé en paramètre et la date du jour avec un texte également en paramètre:
function anniv(date,texte,texte2)
{    
    
    var date=date.split("/");
    
    var jour = date[0];
    var mois = date[1];
      
    var today=new Date();
    var month=today.getMonth()+1;
    var day=today.getDate();
    
    if((month == mois) && (day == jour))
        alert(texte);
    else
        alert(texte2);
}
<a href="#" onClick="anniv('20/03/1974','aniversaire','pas aniversaire')">Anniv</a>

Posté : 22 mars 2006, 13:11
par vins1892
Dsl, j'ai en effet constaté hier que c'était un peu plus convivial d'afficher du texte si n° du jour considéré était égal au n° du jour considéré.

Donc, j'ai positionné différents événèments et je souhaiterais que les 5 prochains par exemple soient affichés.

Dès lors, je ne pense pas que le ctrl sur la date soit encore nécessaire ...

Code : Tout sélectionner

var date_statement=""; var time_statement=""; var today=new Date(); var month=""; var day=""; function todays_date() { var month=today.getMonth(); var day_of_week=today.getDay(); date_statement="" document.month="" month++; // So it's now between 1 - 12. if(month==1) { january(today.getDate()); document.month="Janvier "; } if(month==2) { february(today.getDate()); document.month="Février "; } if(month==3) { march(today.getDate()); document.month="Mars "; } if(month==4) { april(today.getDate()); document.month="Avril "; } if(month==5) { may(today.getDate()); document.month="Mai "; } if(month==6) { june(today.getDate()); document.month="Juin "; } if(month==7) { july(today.getDate()); document.month="Juillet "; } if(month==8) { august(today.getDate()); document.month="Août "; } if(month==9) { september(today.getDate()); document.month="Septembre "; } if(month==10) { october(today.getDate()); document.month="Octobre "; } if(month==11) { november(today.getDate()); document.month="Novembre "; } if(month==12) { december(today.getDate()); document.month="Décembre "; } function january(date) { if(date==1) date_statement="Bonne année à tout le monde"; if(date==2) date_statement="Anniversaire de notre président"; if(date==3) date_statement=""; if(date==4) date_statement="Tournoi à Lyon, série open"; if(date==5) date_statement="Championnat"; if(date==6) date_statement=""; if(date==7) .... .... todays_date(); document.writeln("<DT><B>"+time_statement+" "+document.day+" "+today.getDate()+" "+document.month+"<br> "+date_statement+"<DT>")
Affichage donnerait ceci:

Agenda des prochains jour:
- Bonne année à tout le monde
- annif de notre président;
- Tournoi à Lyon, série open;
- Championnat

D'avance, merci pour ton aide.

Posté : 22 mars 2006, 20:32
par Truc
ça ne va pas faire propre de tout détailler directement dans le code source mais il faut bien stocker quelque part ces données.

Tu dervai peut être utiliser un fichier excel avec les dates et événements associés et lors de l'affichage rechercher l'évenement qui correspond a la date.

J'ai jamais importé des données excel dans une page HTML mais une boucle devrai faire l'affaire.

Posté : 25 mars 2006, 00:19
par vins1892
J'ai pas réussi à mettre en pratique ton conseil et ai tout codé en dur.

Reste à pouvoir afficher les X occurences suivants la date du jour.

Ai essayé avec la fonction
for(initialisation; condition; incrementation){
[Instructions]
}

Mais aucun résultat ?

Posté : 25 mars 2006, 17:54
par Truc
c'est un vrai pseudo code ça pas facile pour comprendre ce que tu as vraiment réalisé :?
afficher les X occurences suivants la date du jour
pas compris

Posté : 01 avr. 2006, 20:50
par vins1892
Voilà les derniers avancements de mes recherches ...

J'ai mis en ligne un agenda (xlagenda) sur un hébergeur acceptant le php.

Je cherche maintenant le moyen de récupérer certaines infos de cet agenda via du javascript, ça doit être possible ça, non ?

Je cherche et si pas de résultat, j'ouvrirai un nouveau topic sur le sujet.

Merci pour ton aide en tout cas.