TP3-INFORMATIQUE
Vérification d’une date Format de la date: JJ/MM/AAAA Ex. 23/01/2010 08/09/2013 30/11/1990
CALENDRIER GREGORIEN Inspiré du calendrier julien (Rome antique) Instigateur: Grégoire XIII (pape de 1572 à 1582) Point de départ: naissance de Jésus (an 1) Basé sur la révolution de la terre autour du soleil en 365,2425 jours de 24 heures de 60 minutes de 60 secondes. Temps moyen de l'année: 365,2425 jours Pour assurer un nombre entier de jours par année, on ajoute régulièrement 1 jour (année bissextile)
CASSE - TETE L'année tropique moyenne, c’est-à-dire la période de rotation de la Terre autour du Soleil, dure 365,24219 jours. En insérant une journée bissextile tous les quatre ans, le calendrier julien attribue à l’année une durée moyenne de 365,25 jours. Ceci induit un décalage d’environ 8 jours par millénaire par rapport au temps vrai,
AJUSTEMENT GREGORIEN Le cycle complet du calendrier grégorien dure 400 ans : trois siècles constitués chacun de 24 cycles juliens (trois ans de 365 jours, puis une année de 366 jours) suivis de quatre années de 365 jours, puis un siècle constitué de 25 cycles juliens.
ANNEE BISSEXTILE Finalement on pourra considérer qu'une année est bissextile (elle possède un 29 février) si son millésime est divisible par 4 (ex: 1904 1980 1996), mais pas par 100 (ex: 1900), à moins qu'il soit divisible par 400 (ex: 2000), sauf s'il est divisible par 4000 (ex: 4000 8000 12000 ).
ANNEE DIVISIBLE PAR 4 100 400 4000
Avec l’ajustement précédent, le décalage entre le temps vrai et le temps calendaire est ramené à 3 jours sur 10 000 ans.
année supérieur à zéro et année inférieur à 10000 DOMAINE ANNEE année supérieur à zéro et année inférieur à 10000
mois supérieur à zéro et mois inférieur à 13 DOMAINE MOIS mois supérieur à zéro et mois inférieur à 13
DOMAINE JOUR janvier : de 1 à 31 février: de 1 à 28 (ou 29 si année bissextile) mars: de 1 à 31 avril: de 1 à 30 mai: de 1 à 31 juin: de 1 à 30 juillet: de 1 à 31 août: de 1 à 31 septembre: de 1 à 30 octobre: de 1 à 31 novembre: de 1 à 30 décembre: de 1 à 31
FORMULAIRE Vérifier Effacer Quitter jour (de 1 à 31): mois (de 1 à 12): année ( de 1 à 9999): Vérifier Effacer Quitter Résultat du test
Gestionnaires d’ évènements UserForm_Initialize() TextBoxJour_Change() TextBoxMois_Change() CommandButtonVerify_Click() CommandButtonReset_Click() CommandButtonClose_Click()
Fonctions et procédures utilisateur Private Sub valid_date(ByVal iAnnee As Integer, ByVal iMois as Integer,ByVal iJour as Integer) Private Sub not_valid_date(ByVal iAnnee As Integer, ByVal iMois as Integer,ByVal iJour as Integer) Private Sub clear_results() Private Sub rearrange_results() Private Sub check_input() Private Function EstDivisiblePar(ByVal iNombre As Integer, ByVal iDiviseur As Integer) As Boolean Private Function EstBissextile(ByVal iAnnee As Integer) As Boolean Private Function EstValideDate(ByVal iJour As Integer, ByVal iMois As Integer, ByVal iAnnee As Integer) As Boolean
procédure check_input Active/Désactive les boutons Effacer et Vérifier en fonction du contenu des contrôles TextBox jour, mois, année. Le bouton Effacer est activé seulement si au moins un des contrôles jour, mois, année n’a pas de contenu vide. Le bouton Vérifier n’est activé que si les contrôles jour, mois et année possèdent des contenus plausibles. Le jour doit être un entier supérieur à 0 et inférieur à 32 Le mois doit être un entier supérieur à 0 et inferieur à 13 L’année doit être un entier supérieur à 0 et inférieur à 10000