titirock
Messages postés2Date d'inscriptiondimanche 18 février 2007StatutMembreDernière intervention15 avril 2007
-
15 avril 2007 à 11:23
cs_jperre
Messages postés268Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention19 janvier 2017
-
15 févr. 2012 à 12:44
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_jperre
Messages postés268Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention19 janvier 20172 15 févr. 2012 à 12:44
Merci à misterclic66 pour sa remarque. J'envoie immédiatement un correctif en ce sens.
misterclic66
Messages postés12Date d'inscriptionlundi 27 avril 2009StatutMembreDernière intervention22 avril 2011 14 févr. 2012 à 15:21
J'ai finalement corrigé la fonction qui calcule de la date de pâques
function getEaster(iYear) {
/*Cette fonction renvoie la date de Pâques et permet de déterminer :
* le lundi de Pâques,
* le jeudi de l'Ascension,
* le lundi de Pentecôte.*/
var v1 = new Number(iYear%19);
var v2 = new Number(Math.floor(iYear/100));
var v3 = new Number(Math.floor(v2/4));
var v4 = new Number((19*v1 + v2 - v3 - Math.floor((8*v2 + 13)/25) + 15)%30);
var v5 = new Number(Math.floor(v4/28));
var v6 = new Number((v5*Math.floor(29/(v4+1))*Math.floor((21-v1)/11) - 1)*v5 + v4);
var v8 = new Number((Math.floor(iYear/4) + iYear + v6 + 2 + v3 - v2)%7);
var v7 = new Number(28 + v6 - v8);
if (v7<=31) {
var datEaster=new Date(iYear,2,v7);
} else {
var datEaster=new Date(iYear,3,v7-31);
}
return datEaster;
}
misterclic66
Messages postés12Date d'inscriptionlundi 27 avril 2009StatutMembreDernière intervention22 avril 2011 14 févr. 2012 à 10:54
Petit souci avec ta formule de calcul de la date de Pâques : il donne la date de la pâque orientale (formules sur Wikipédia http://fr.wikipedia.org/wiki/Calcul_de_la_date_de_P%C3%A2ques pour voir les formules possibles afin d'obtenir la date occidentale
cs_jperre
Messages postés268Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention19 janvier 20172 14 févr. 2011 à 18:01
Il est normal que la date sélectionnée dans le calendrier à l'ouverture soit le jour du mois de la date courante.
Et ce quel que soit le mois. Pour sélectionner une autre date, il suffit de mettre une valeur date par défaut dans le champ texte qui est lié au calendrier. Dans ce cas la date par défaut du calendrier sera la date du champ.
Bon courage!...
misterclic66
Messages postés12Date d'inscriptionlundi 27 avril 2009StatutMembreDernière intervention22 avril 2011 14 févr. 2011 à 11:48
J'avais oublié la note
misterclic66
Messages postés12Date d'inscriptionlundi 27 avril 2009StatutMembreDernière intervention22 avril 2011 14 févr. 2011 à 11:45
excellent script, mais je relève cependant 1 truc qui me gêne :
nous sommes aujourd'hui un 14 du mois, et la date d'aujourd'hui prend bien la classe "today", mais également tous les 14 de tous les mois.
J'ai bien tenté de modifier la ligne 598 du fichier.js:
if (iDay==dtToday.getDate() && iMonth==dtToday.getDate()) {
......
au lieu de
if (iDay==dtToday.getDate()) {
......
mais rien n'y fait
Renald689
Messages postés6Date d'inscriptionvendredi 27 août 2010StatutMembreDernière intervention 4 octobre 2010 28 août 2010 à 23:05
Toutes mes confuses, j'ai trouvé la solution : il suffisait de modifier l'argument d'appel de la fonction NewCal.
Renald689
Messages postés6Date d'inscriptionvendredi 27 août 2010StatutMembreDernière intervention 4 octobre 2010 28 août 2010 à 22:22
Bonjour et bravo pour ce code.
J'ai toutefois un petit problème : j'aimera que le calendrier renvoie une date au format YYYY-MM-DD pour extre exploitable par SQL. J'ai trouvé comment remplacer le "/" par un "-", j'ai aussi modifié ceci :
this.Format="YYYYMMDD";//Format d'affichage de la date par défaut
Mais rien n'y fait, j'ai toujours une date du style "28-08-2010". Un tuyau ?
Khchine_Hamza
Messages postés2Date d'inscriptiondimanche 29 avril 2007StatutMembreDernière intervention 5 août 2009 5 août 2009 à 21:16
Bravo ,c'est tres bien fait .Merci beaucoup et bonne continuation
cs_jperre
Messages postés268Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention19 janvier 20172 26 mai 2009 à 17:48
Dans le fichier source HTML de l'exemple de calendrier :
- l'attribut href de l'élément "a" (anchor) qui contient l'icône de calendrier de la date de début a la valeur suivante : "javascript:NewCal('DateDeb','DDMMYYYY',400,50)".
- l'attribut href de l'élément "a" (anchor) qui contient l'icône de calendrier de la date de fin a la valeur suivante : "javascript:NewCal('DateDeb','DDMMYYYY',400,127)".
Quelle que soit les valeurs initiales données aux variables cTop et cLeft, lors de l'appel de la fonction NewCal(), elles sont remplacées par les valeurs des deux derniers paramètres transmis à cette fonction.
Pour info pour un débutant : Le fait de donner la valeur "javascript:....." à l'attribut href indique au navigateur qu'il doit exécuter le code qui suit au lieu de chercher une URL.
jujumat
Messages postés1Date d'inscriptionmardi 21 mars 2006StatutMembreDernière intervention26 mai 2009 26 mai 2009 à 16:28
Tout d'abord merci pour cette source JPERRE !!!!
Je veux juste réagir par rapport au placement des calendriers car j'ai du mal à comprendre quelle valeurs prennent pX et pY au moment de l'appel de la fonction.
J'ai fais un test en mettant cTop et cLeft à 0, et les calendrier sont quand même bien placé(dans fichier source)avec le décalage entre celui du haut et celui du bas. Comment géres-tu ce décalage ???
Merci d'avance !!!!!!!!!!!!
cs_jperre
Messages postés268Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention19 janvier 20172 26 mai 2009 à 13:00
La fonction NewCal(pCtrl,pFormat,pX,pY) permet de positionner le calendrier dans la page HTML. Les paramètres à entrer dans cette fonction sont :
pCtrl : attribut name de l'élément input de type text lié au calendrier,
pFormat : format d'affichage de la date,
pX : coordonnée left du calendrier,
pY : coordonnée top du calendrier.
Ces information sont indiquées en commentaire dans le code javascript du fichier calendar.js.
Pour positionner correctement le calendrier par rapport à l'icône de la page HTML, il suffit de récupérer les coordonnées et les dimensions de cette icône avec les propriétés de l'objet Image :
objetImage.style.top
objetImage.style.left
objetImage.style.height
objetImage.style.width
cs_francis56
Messages postés1Date d'inscriptionlundi 17 juillet 2006StatutMembreDernière intervention15 mai 2009 15 mai 2009 à 10:41
Excellent code, merci pour ce partage encore une fois.
une question me tracasse tout de même, elle est identique à celle de LAURABOUCHE c'est à dire comment afficher le calendrier juste a coté de l'icône 'calendar'.
J'ai cherché dans le code et au niveaux des paramètres modifiable de trouve :
var cTop=200; //Coordonnée du haut du calendrier
var cLeft=300; //Coordonnée de la gauche du calendrier
qui devraient jouer sur la position du tableau mais rien n'y fait, puis-je avoir un peu d'aide ?
merci d'avance :)
declic01
Messages postés1Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention11 mars 2008 11 mars 2008 à 17:22
Bravo et merci, enfin un code de calendrier qui fonctionne simplement !
cs_jperre
Messages postés268Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention19 janvier 20172 31 déc. 2007 à 18:17
Généralement lorsque le code ne fonctionne pas lorsque la page est mise en ligne, il faut regarder du coté des adresses de fichiers sources (*.js, *.css) dans la page html appelante (balises <style> et <script>). Le plus souvent, les chemins d'accès ne sont pas valides.
ploulmet
Messages postés1Date d'inscriptionjeudi 19 juillet 2007StatutMembreDernière intervention30 décembre 2007 30 déc. 2007 à 18:36
Bonjour,
Merci pour ce partage de connaissances, mais je n'arrive pas utiliser ce code lorsque je mets la page en ligne, cela fonctionne très bien en local.
Il y a sûrement une raison évidente, mais après plusieurs heures, je ne vois pas, c'est le brouillard...
Merci de votre aide.
LAURABOUCHE
Messages postés1Date d'inscriptionvendredi 15 juin 2007StatutMembreDernière intervention28 novembre 2007 28 nov. 2007 à 16:32
Bonjour,
Merci pour ce code mais n'y a t il pas un moyen de faire en sorte que le calendrier s'ouvre automatiquement à coté de l'icone ?
Sinon merci.
fatatra
Messages postés50Date d'inscriptionlundi 30 octobre 2006StatutMembreDernière intervention 3 décembre 2007 7 nov. 2007 à 22:10
vraiment un super code, bien pratique.
cs_The Sorrow
Messages postés3Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention30 mai 2007 30 mai 2007 à 17:27
Salut j'ai réussi à modifier le code de façon à ce que çà fonctionne sous ie (cependant en le corrigeant sous ie c'etait sur firefox que çà planté alors voila j'ai retravailler la fonction DrawCallBody. C'est peut etre pas terrible mais comme je suis débutant en JS .... Bonne continuation et merci encore pour ce code ++
function DrawCalBody() {
/*Cette fonction dessine le corp du calendrier*/
var CalRows=document.getElementById("calendar").rows;
if (CalRows.length>3) {//S'il existe des données dans le corps du tableau, elles sont effacées
for (i=CalRows.length;i>3;i--) {
document.getElementById("calendar").deleteRow(i-1);
}
}
var iNumRow=3
var trCal=document.getElementById("calendar").insertRow(iNumRow);
var dtFirstDay=new Date(Cal.Year,Cal.Month,1);
var iFirstDayOfMonth=dtFirstDay.getDay();
var iMonth=Cal.getMonthDays();
var iPrevMonth=Cal.getMonthDays("Prev");
var iNumCell=0;//Compteur de cellules
for (i=0;i<=6;i++) {//Recherche de l'emplacement du premier jour du mois et des jours du mois précédent à reporter
if (ColWeekDays[i]==iFirstDayOfMonth) {
var DaysPrev=i;
break;
}
}
for (i=1;i<=DaysPrev;i++) {//Copie des derniers jours du mois précédent
var tdCal=document.createElement("td");
DrawCell(tdCal,(iPrevMonth-DaysPrev+i),"Prev");
trCal.appendChild(tdCal);
iNumCell++;
}
for (i=1;i<=iMonth;i++) {//Copie des jours du mois
var tdCal=document.createElement("td");
DrawCell(tdCal,i,null);
trCal.appendChild(tdCal);
iNumCell++
if (iNumCell==7) {//Fin de ligne et retour à la ligne suivante
iNumRow++;
trCal=document.getElementById("calendar").insertRow(iNumRow);
Nom = navigator.appName;
if(Nom != 'Netscape')
trCal.appendChild(trCal);
iNumCell=0;
}
}
var iNumCell2 = iNumCell;
//alert("Cell2 = "+iNumCell2);
if ((iNumCell2<7) && (iNumCell2!=0)) {//Copie des premiers jours du mois suivant
for (i=1;i<=(7-iNumCell2);i++) {
var tdCal=document.createElement("td");
DrawCell(tdCal,i,"Next");
trCal.appendChild(tdCal);
}
}
}
cs_The Sorrow
Messages postés3Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention30 mai 2007 25 avril 2007 à 09:54
Salut!
Premièrement bravo pour ce code trés bien réalisé et l'application du drag and drop dessus rend le tout encore plus sympa. Cependant j'ai un petit soucis. J'utilise IE6 et j'ai trouvé un bug lorsque on change d'année il y a certains mois (comme septembre 2007 par ex) qui n'affiche pas les jours...!!! Par contre sous mozilla 2.0.0.3 pas de soucis.... Je comprends pas du tout pourquoi et çà fait un petit moment que je cherche la solution. Merci d'avance pour vos suggestions
cs_The Sorrow
Messages postés3Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention30 mai 2007 25 avril 2007 à 09:52
Salut!
Premièrement bravo pour ce code trés bien réalisé et l'application du drag and drop dessus rend le tout encore plus sympa. Cependant j'ai un petit soucis. J'utilise IE6 et j'ai trouvé un bug lorsque on change d'année il y a certains mois (comme septembre 2007 par ex) qui n'affiche pas les jours...!!! Par contre sous mozilla 2.0.0.3 pas de soucis.... Je comprends pas du tout pourquoi et çà fait un petit moment que je cherche la solution. Merci d'avance pour vos suggestions
cs_jperre
Messages postés268Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention19 janvier 20172 18 avril 2007 à 08:12
Je suis étonné que le Tableau déplaçable ne fonctionne pas sur Firefox 2.0.0.3 car je l'ai testé sur Firefox 2.0.0.3 et IE7, celà fonctionne parfaitement sur ces deux navigateurs. Toutefois, je rappelle qu'il faut utiliser les fichiers fournis pour chaque version (ils sont contenus dans l'archive zip correspondante) et surtout ne pas mélanger les fichiers des versions entre eux.
titirock
Messages postés2Date d'inscriptiondimanche 18 février 2007StatutMembreDernière intervention15 avril 2007 15 avril 2007 à 11:23
Salut!
Ton code est très bien,c'est vraiment ce que je cherchais! Bravo! Par contre la version Tableau déplacable ne fonctionne pas sur mon Firefox 2.0.0.3.
15 févr. 2012 à 12:44
14 févr. 2012 à 15:21
function getEaster(iYear) {
/*Cette fonction renvoie la date de Pâques et permet de déterminer :
* le lundi de Pâques,
* le jeudi de l'Ascension,
* le lundi de Pentecôte.*/
var v1 = new Number(iYear%19);
var v2 = new Number(Math.floor(iYear/100));
var v3 = new Number(Math.floor(v2/4));
var v4 = new Number((19*v1 + v2 - v3 - Math.floor((8*v2 + 13)/25) + 15)%30);
var v5 = new Number(Math.floor(v4/28));
var v6 = new Number((v5*Math.floor(29/(v4+1))*Math.floor((21-v1)/11) - 1)*v5 + v4);
var v8 = new Number((Math.floor(iYear/4) + iYear + v6 + 2 + v3 - v2)%7);
var v7 = new Number(28 + v6 - v8);
if (v7<=31) {
var datEaster=new Date(iYear,2,v7);
} else {
var datEaster=new Date(iYear,3,v7-31);
}
return datEaster;
}
14 févr. 2012 à 10:54
14 févr. 2011 à 18:01
Et ce quel que soit le mois. Pour sélectionner une autre date, il suffit de mettre une valeur date par défaut dans le champ texte qui est lié au calendrier. Dans ce cas la date par défaut du calendrier sera la date du champ.
Bon courage!...
14 févr. 2011 à 11:48
14 févr. 2011 à 11:45
nous sommes aujourd'hui un 14 du mois, et la date d'aujourd'hui prend bien la classe "today", mais également tous les 14 de tous les mois.
J'ai bien tenté de modifier la ligne 598 du fichier.js:
if (iDay==dtToday.getDate() && iMonth==dtToday.getDate()) {
......
au lieu de
if (iDay==dtToday.getDate()) {
......
mais rien n'y fait
J'ai besoin que seule la date du jour courant prenne la classe "today"
Je ne suis pas assez expert en js pour faire cela
Lien vers mon fichier test :
http://grenoble-sciences-test.ujf-grenoble.fr/test/calform.html
Merci pour votre aide
28 août 2010 à 23:05
28 août 2010 à 22:22
J'ai toutefois un petit problème : j'aimera que le calendrier renvoie une date au format YYYY-MM-DD pour extre exploitable par SQL. J'ai trouvé comment remplacer le "/" par un "-", j'ai aussi modifié ceci :
this.Format="YYYYMMDD";//Format d'affichage de la date par défaut
Mais rien n'y fait, j'ai toujours une date du style "28-08-2010". Un tuyau ?
5 août 2009 à 21:16
26 mai 2009 à 17:48
- l'attribut href de l'élément "a" (anchor) qui contient l'icône de calendrier de la date de début a la valeur suivante : "javascript:NewCal('DateDeb','DDMMYYYY',400,50)".
- l'attribut href de l'élément "a" (anchor) qui contient l'icône de calendrier de la date de fin a la valeur suivante : "javascript:NewCal('DateDeb','DDMMYYYY',400,127)".
Quelle que soit les valeurs initiales données aux variables cTop et cLeft, lors de l'appel de la fonction NewCal(), elles sont remplacées par les valeurs des deux derniers paramètres transmis à cette fonction.
Pour info pour un débutant : Le fait de donner la valeur "javascript:....." à l'attribut href indique au navigateur qu'il doit exécuter le code qui suit au lieu de chercher une URL.
26 mai 2009 à 16:28
Je veux juste réagir par rapport au placement des calendriers car j'ai du mal à comprendre quelle valeurs prennent pX et pY au moment de l'appel de la fonction.
J'ai fais un test en mettant cTop et cLeft à 0, et les calendrier sont quand même bien placé(dans fichier source)avec le décalage entre celui du haut et celui du bas. Comment géres-tu ce décalage ???
Merci d'avance !!!!!!!!!!!!
26 mai 2009 à 13:00
pCtrl : attribut name de l'élément input de type text lié au calendrier,
pFormat : format d'affichage de la date,
pX : coordonnée left du calendrier,
pY : coordonnée top du calendrier.
Ces information sont indiquées en commentaire dans le code javascript du fichier calendar.js.
Pour positionner correctement le calendrier par rapport à l'icône de la page HTML, il suffit de récupérer les coordonnées et les dimensions de cette icône avec les propriétés de l'objet Image :
objetImage.style.top
objetImage.style.left
objetImage.style.height
objetImage.style.width
15 mai 2009 à 10:41
une question me tracasse tout de même, elle est identique à celle de LAURABOUCHE c'est à dire comment afficher le calendrier juste a coté de l'icône 'calendar'.
J'ai cherché dans le code et au niveaux des paramètres modifiable de trouve :
var cTop=200; //Coordonnée du haut du calendrier
var cLeft=300; //Coordonnée de la gauche du calendrier
qui devraient jouer sur la position du tableau mais rien n'y fait, puis-je avoir un peu d'aide ?
merci d'avance :)
11 mars 2008 à 17:22
31 déc. 2007 à 18:17
30 déc. 2007 à 18:36
Merci pour ce partage de connaissances, mais je n'arrive pas utiliser ce code lorsque je mets la page en ligne, cela fonctionne très bien en local.
Il y a sûrement une raison évidente, mais après plusieurs heures, je ne vois pas, c'est le brouillard...
Merci de votre aide.
28 nov. 2007 à 16:32
Merci pour ce code mais n'y a t il pas un moyen de faire en sorte que le calendrier s'ouvre automatiquement à coté de l'icone ?
Sinon merci.
7 nov. 2007 à 22:10
30 mai 2007 à 17:27
function DrawCalBody() {
/*Cette fonction dessine le corp du calendrier*/
var CalRows=document.getElementById("calendar").rows;
if (CalRows.length>3) {//S'il existe des données dans le corps du tableau, elles sont effacées
for (i=CalRows.length;i>3;i--) {
document.getElementById("calendar").deleteRow(i-1);
}
}
var iNumRow=3
var trCal=document.getElementById("calendar").insertRow(iNumRow);
var dtFirstDay=new Date(Cal.Year,Cal.Month,1);
var iFirstDayOfMonth=dtFirstDay.getDay();
var iMonth=Cal.getMonthDays();
var iPrevMonth=Cal.getMonthDays("Prev");
var iNumCell=0;//Compteur de cellules
for (i=0;i<=6;i++) {//Recherche de l'emplacement du premier jour du mois et des jours du mois précédent à reporter
if (ColWeekDays[i]==iFirstDayOfMonth) {
var DaysPrev=i;
break;
}
}
for (i=1;i<=DaysPrev;i++) {//Copie des derniers jours du mois précédent
var tdCal=document.createElement("td");
DrawCell(tdCal,(iPrevMonth-DaysPrev+i),"Prev");
trCal.appendChild(tdCal);
iNumCell++;
}
for (i=1;i<=iMonth;i++) {//Copie des jours du mois
var tdCal=document.createElement("td");
DrawCell(tdCal,i,null);
trCal.appendChild(tdCal);
iNumCell++
if (iNumCell==7) {//Fin de ligne et retour à la ligne suivante
iNumRow++;
trCal=document.getElementById("calendar").insertRow(iNumRow);
Nom = navigator.appName;
if(Nom != 'Netscape')
trCal.appendChild(trCal);
iNumCell=0;
}
}
var iNumCell2 = iNumCell;
//alert("Cell2 = "+iNumCell2);
if ((iNumCell2<7) && (iNumCell2!=0)) {//Copie des premiers jours du mois suivant
for (i=1;i<=(7-iNumCell2);i++) {
var tdCal=document.createElement("td");
DrawCell(tdCal,i,"Next");
trCal.appendChild(tdCal);
}
}
}
25 avril 2007 à 09:54
Premièrement bravo pour ce code trés bien réalisé et l'application du drag and drop dessus rend le tout encore plus sympa. Cependant j'ai un petit soucis. J'utilise IE6 et j'ai trouvé un bug lorsque on change d'année il y a certains mois (comme septembre 2007 par ex) qui n'affiche pas les jours...!!! Par contre sous mozilla 2.0.0.3 pas de soucis.... Je comprends pas du tout pourquoi et çà fait un petit moment que je cherche la solution. Merci d'avance pour vos suggestions
25 avril 2007 à 09:52
Premièrement bravo pour ce code trés bien réalisé et l'application du drag and drop dessus rend le tout encore plus sympa. Cependant j'ai un petit soucis. J'utilise IE6 et j'ai trouvé un bug lorsque on change d'année il y a certains mois (comme septembre 2007 par ex) qui n'affiche pas les jours...!!! Par contre sous mozilla 2.0.0.3 pas de soucis.... Je comprends pas du tout pourquoi et çà fait un petit moment que je cherche la solution. Merci d'avance pour vos suggestions
18 avril 2007 à 08:12
15 avril 2007 à 11:23
Ton code est très bien,c'est vraiment ce que je cherchais! Bravo! Par contre la version Tableau déplacable ne fonctionne pas sur mon Firefox 2.0.0.3.