Voici un petit calendrier instanciable pour une aproche objet.
Il utilise une fonction de rappel pour réaliser un traitement lors d'un clic sur une des cases du calendrier.
Le code est minimaliste. Il n'est pas interdit de l'améliorer, ni de le critiquer.
Il fonctionne bien sur IE.
Je vous invite à donner des retours, des conseils.
Toute ressemblance avec un autre code est strictement involontaire.
J'ai fait celà avec mes connaissances limitées.
Conclusion :
Je remercie tous les sites de javascripts que j'ai pu visionner sur le net, notemment
http://www.Le-webmestre.net, et codesource, et les auteurs du livre JavaScript professionnel de wrox de m'avoir permis de comprendre une petite partie du javascript.
Il y a un bug lorsque l'on revient avant 2000 : on passe à 99 et lorsque remonte ça repasse à 100. Le bug de l'an 2000, ... Savez vous comment l'éviter ?
Il y en a surement d'autre
28 févr. 2007 à 11:32
Pour corriger le problème de date, il suffit de remplacer toutes les occurences du mot 'getYear'par 'getFullYear' dans le fichier .js.
Il n'y aura plus de saut au passage des années précédant l'an 2000.
5 mai 2006 à 10:23
à mon avis, il y a un problème avec le changement d'année.
On arrive tout de suite dans les -1700 quelque soit le bouton sur lequel on appuie pour avancer ou reculer d'une année.
A corriger
@+
Sayann
9 juil. 2004 à 00:25
Pour corriger cet oubli, il suffit d'ajouter en première ligne de la fonction "minicalendrier_maj()" du fichier minicalendrier.js la ligne suivante :
this.moisnbjours[1]=(!(this.a.getYear()%4) && (this.a.getYear()%100)||!((this.a.getYear()%100)||(this.a.getYear()%400)))?29:28;
Explications :
les mois divisibles par 4 sont bisextilles sauf s'il sont séculaire et indivisibles par 400 :cf calendrier grégorien
a%b renvois 0 si a est divisible par b
soit "dv" pour divisible et "ndv" pour non divisible
si a dv 4 et !(a dv 100) ou (a dv 100 et a dv 400)
comme l'opérateur % agit comme vrai pour "non divisible", on obtient
si !(a ndv 4) et a ndv 100 ou (! (a ndv 100) et ! (a ndv 400))
avec l'équivalence : !a & !b <=> !(a||b)
si !(a ndv 4) et a ndv 100 ou !(a ndv 100 ou a ndv 400)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.