CALENDAR.BAS Version 2
Jeux en GW-Basic (PC-Basic)
Ce programme imprime un calendrier pour n'importe quelle année. Vous devez spécifier le premier jour de la semaine de l'année dans l'instruction 130. (dimanche (0), lundi (-1), mardi (-2), etc.).
Vous pouvez le déterminer en utilisant le programme WEEKDAY.BAS. Vous devez également apporter deux modifications pour les années bissextiles dans les déclarations 360 et 620.
L'exécution du programme produit un joli calendrier de 12 mois. Le programme a été écrit par Geoffrey Chase de l'abbaye de Portsmouth, Rhode Island.
10 PRINT TAB(32);"CALENDAR"
20 PRINT TAB(I5);"CREATIVE CONPUTING
HORRISTOWN, NEW JERSEY"
100 REM VALUES FOR 1978 - SEE NOTES
110 DIM M(12)
130 D=0: REM 1978 STARTS ON SUNDAY (0=SUN, -1=M0N, -2=TUES...)
140 S=0
150
REM READ DAYS OF EACH MONTH
160 FOR N=0 TO 12:READ M(N):NEXT N
170 REM
180 FOR N=1 TO 12
190 PRINT:PRINT:S=S+M(N-1)
200 PRINT "***";S;TAB(7);
210 FOR I=1 TO 18: PRINT "*";: NEXT I
220 ON N GOTO
230,240,250,260,270,280,290,300,310,320,330,340
230 PRINT " JANUARY ";: GOTO
350
240 PRINT " FEBRUARY";: GOTO 350
250 PRINT " MARCH ";: GOTO 350
260
PRINT " APRIL ";: GOTO 350
270 PRINT " MAY ";: GOTO 350
280 PRINT " JUNE
";: GOTO 350
290 PRINT " JULY ";: GOTO 350
300 PRINT " AUGUST ";: GOTO 350
310 PRINT "SEPTEMBER";: GOTO 350
320 PRINT " OCTOBER ";: GOTO 350
330
PRINT " NOVEMBER";: GOTO 350
340 PRINT " DECEHBER";
350 FOR I = 1 TO 18:
PRINT "*";: NEXT I
360 PRINT 365-S;"**";
370 REM 366-S; ON LEAP YEARS
380 PRINT CHR$(10): PRINT " S M T W";
390 PRINT " T F S"
400 PRINT
410
FOR I=1 TO 59: PRINT "*";: NEXT I
420 REM
430 FOR W=1 TO 6
440 PRINT
CHR$(10)
450 PRINT TAB(4)
460 REM
470 FOR G=1 TO 7
480 D=D+1
490
D2=D-S
500 IF D2>M(N) THEN 580
510 IF D2>0 THEN PRINT D2;
520 PRINT
TAB(4+8*G);
530 NEXT G
540 REM
550 IF D2=M(N) THEN 590
560 NEXT W
570 REM
580 D=D-G
590 NEXT N
600 REM
610 FOR I=1 TO 6: PRINT
CHR$(10);: NEXT I
620 DATA 0,31,28,31,30,31,30,31,31,30,31,30,31
630 REM
0,31,29, ..., ON LEAP YEARS
640 END