Validité d’une date et calcul de bisextilité

Le script que nous allons voir permet de contrôler la validité d’une date entrée par l’utilisateur. Malgré sa facilité, nous allons tout de même commencer par un premier algorithme qui permet d’afficher les années bisextiles, la partie la plus utile (et aussi la plus intéressante). Pour le reste, je pense que la majorité des personnes ont un moyen mémotechnique pour savoir si un mois contient 30 ou 31 jours.

Pour effectuer ce calcul, il faut savoir comment on calcule cela. Le calendrier Grégorien, créé en 1582, étant basé sur 365 jours, et la terre faisant un tour complet autour du soleil en exactement 365,2425 jours, un léger décalage se créerait si ce n’était pas rectifié. Pour y remédier, nous avons donc ajouté un 29e jour une année sur quatre. Mais il reste toujours un décalage de 0.0025 jour par an. Pour affiner le truc, il a été décidé que les multiples de 100 seront bisextiles uniquement si ils sont divisibles par 400. Depuis la création de ce calendrier, l’année 1600 était bien bisextile, mais 1700, 1800 et 1900 non. L’année 2000 l’était, 2100 ne le sera pas, etc…

Maintenant que nous avons tout ces paramètres en tête, la condition à écrire devient donc évidente. Voici un premier script qui permet seulement d’afficher les années bisextiles sur une période donnée par l’utilisateur.

Screenshot_2016-02-05_19-56-00

Pas grand chose à dire ici. Les années de début et de fin de recherche entrées par l’utilisateur sont stockées respectivement dans startYear et endYear. Ensuite, la boucle for parcourt chaque année dans cette période en vérifiant, à l’aide du modulo, les critères évoqués plus haut. Voici le résultat obtenu par exemple en testant de 1600 à 2000 :

Screenshot_2016-02-05_19-58-18

Cliquez ici pour télécharger le fichier.

Maintenant que nous savons repérer les années bisextiles, il ne nous reste plus pour le deuxième script qu’à délimiter le nombre de jours maximal selon le mois entré par l’utilisateur. Voici le résultat final :

Screenshot_2016-02-05_20-42-16

Après avoir vérifié que les jours, mois et année entrés par l’utilisateur sont bien des nombres positifs, nous attribuons un nombre de jour maximum au mois choisi que nous stockons dans la variable dMax. Si l’utilisateur a entré 4, 6, 9, ou 11, c’est 30 jour, si c’est 1, 3, 5, 7, 8, 10 ou 12 c’est 31 jours, si c’est février c’est 28 ou 29 jours selon si l’année est bisextile ou pas, sinon c’est forcément faux.

Donc, si le jour est inférieur ou égal à dMax et le mois inférieur ou égal à 12, la date est valide.

Voici un aperçu :

Screenshot_2016-02-05_20-23-48

Cliquez ici pour télécharger le fichier.

Voilà ! Le code en lui-même est simple, mais ça permet de mieux comprendre le fonctionnement de notre calendrier

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *