10 RESTORE
15 CLS
20 INPUT "DATE ",DATE$
24 REM --- LIGNE 25 : LA VARIABLE JOUR CONTIENT LE JOUR ENTRE EN CHIFFRES ---
25 JOUR=VAL(DATE$)
29 REM --- LIGNES 30 ET 31 : ON VERIFIE QUE L'ENTREE CLAVIER N'EST PAS INCORRECTE ---
30 IF DATE$=""THEN 10
40 IF JOUR<1 OR JOUR>31 THEN 10
44 REM --- LIGNE 45 : LA VARIABLE LONGUEURREPONSE DONNE LA LONGUEUR EN CARACTERES DE LA REPONSE ENTREE ---
45 LONGUEURREPONSE=LEN(DATE$)
49 REM --- LIGNE 50 : LA VARIABLE MOIS$ CONTIENT LE MOIS ENTRE EN TOUTES LETTRES ---
50 MOIS$=MID$(DATE$,4,LONGUEURREPONSE-8)
54 REM --- LIGNES 55 ET 60 : LES VARIABLES AN$ ET AN CONTIENNENT L'ANNEE ---
55 AN$=RIGHT$(DATE$,4)
60 AN=VAL(AN$)
65 RESTORE 145
69 REM --- LIGNE 70 : LA VARIABLE CONTROLE VA PERMETTRE DE DETERMINER SI LE MOIS ENTRE EST DANS LA LISTE DE MOIS ---
70 CONTROLE=0
75 FOR I=1 TO 12
79 REM --- LIGNES 80 ET 85 : LA VARIABLE MOIS LIRA DANS LES DATA LE MOIS EN CHIFFRES TANDIS QUE MOISENLETTRES$ LIRA LE MOIS EN LETTRES ---
80 READ MOIS
85 READ MOISENLETTRES$
90 IF MOISENLETTRES$=MOIS$ THEN 105 ELSE CONTROLE=CONTROLE+1
94 REM --- LIGNE 95 : SI CONTROLE=12 C'EST QUE L'ENTREE DU MOIS EN LETTRES A ETE INCORRECTE ---
95 IF CONTROLE=12 THEN 10
100 NEXT I
104 REM --- LIGNE 105 : CETTE LIGNE VERIFIE QUE L'ANNEE A BIEN ETE ENTREE ---
105 IF AN$="" THEN 10
109 REM --- LES DIFFERENTES FORMULES ---
110 IF MOIS<3 THEN X=1
115 IF MOIS>=3 THEN X=0
120 Q=INT(365.25*(AN-X)+INT(30.6*(MOIS+1+X*12)))
125 P=JOUR-INT((INT((AN-X)/100)-7*0.75)
130 Y=Q+P
135 Y=Y-7*INT(Y/7)
140 E=Y*2+200
141 REM --- MA PETITE CORRECTION PERSONNELLE CAR CE PROGRAMME DONNAIT DES REPONSES FAUSSES A PARTIR DU 29 FEVRIER 2000 ---
142 IF AN=2000 AND MOIS>2 THEN E=E+2
143 IF AN>2000 THEN E=E+2
144 IF E=214 THEN E=200
145 DATA 1,JANVIER,2,FEVRIER,3,MARS,4,AVRIL,5,MAI,6,JUIN,7,JUILLET,8,AOUT,9,SEPTEMBRE,10,OCTOBRE,11,NOVEMBRE,12,DECEMBRE
150 CLS
155 BEEP1
160 PRINT JOUR MOIS$ AN ": ";
163 REM --- SI E=200 ALORS LE JOUR RECHERCHE EST UN JEUDI ---
164 REM --- ALORS PLUTOT QUE : IF E =200 THEN 200 J'AI CHOISI : GOTO E ---
165 GOTO E
200 PRINT "JEUDI";:END
202 PRINT "VENDREDI";:END
204 PRINT "SAMEDI";:END
206 PRINT "DIMANCHE";:END
208 PRINT "LUNDI";:END
210 PRINT "MARDI";:END
212 PRINT "MERCREDI";:END

