10 REM CALENDAR.BAS - LAST EDITTED 31/01/82 20 REM Dr Dobbs Nov 1981 p61 30 REM This program inputs a month and year and 40 REM from that prints the current months calendar. 50 REM 60 DEFINT A-Y 70 DEFSTR Z 80 INPUT "Month";M 90 INPUT "Year";Y 100 IF Y<1900 OR Y > 2099 THEN PRINT "Between 1900 and 2099 please!" : GOTO 80 110 IF M <1 OR M > 12 GOTO 80 120 MONTH = M : YEAR = Y : GOSUB 320 130 DAY = D : YEAR = Y : MONTH = M+1 140 IF MONTH < 13 GOTO 160 ELSE MONTH = 1 150 YEAR = YEAR +1 160 GOSUB 320 170 D=28+D-DAY 180 IF D<28 THEN D = D+7 190 FOR I=1 TO M 200 READ ZMONTH 210 NEXT 220 PRINT " ";ZMONTH; TAB(25); 230 PRINT USING "####";Y 240 PRINT " Sun Mon Tue Wed Thu Fri Sat" 250 PRINT TAB(DAY*4+1); 260 FOR I=1 TO D 270 PRINT USING " ##";I; 280 IF (I+DAY) MOD 7 = 0 AND I < D THEN PRINT 290 NEXT 300 PRINT 310 END 320 REM Comput the day of the week 330 MONTH = MONTH -2 340 IF MONTH > 0 GOTO 360 ELSE MONTH = MONTH + 12 350 YEAR = YEAR - 1 360 CENTURY = YEAR\100 370 YEAR = YEAR MOD 100 380 D= ((13*MONTH - 1)\ 5 + 5 * YEAR\4 + CENTURY\4 - 2 * CENTURY +1) MOD 7 390 RETURN 400 DATA January,February,March,April,May,June,July,August,September 410 DATA October,November,December