<br> 10 DIM C(12), a$(6) <br> 20 INPUT “YEAR”; Y <br> 30 X = Y: V = 28 <br> 40 IF Y < 0 THEN 20 <br> 50 IF Y = 0 THEN END <br> 60 S = X - 1 + INT((X - 1) / 4) - INT((X - 1) / 100) + INT((X - 1) / 400) <br> 70 C(0) = X <br> 80 S = S + 1 <br> 90 FOR I = 1 TO 12 <br> 100 READ K <br> 110 IF I <> 3 THEN 190 <br> 120 IF X MOD 4 = 0 THEN 140 <br> 130 GOTO 190 <br> 140 IF X MOD 100 = 0 THEN 160 <br> 150 GOTO 180 <br> 160 IF X MOD 400 = 0 THEN 180 <br> 170 GOTO 190 <br> 180 K = K + 1: V = 29 <br> 190 S = S + K <br> 200 M = S MOD 7 <br> 210 IF M = 0 THEN C(I) = 6 ELSE C(I) = M - 1 <br> 220 NEXT <br> 230 FOR I = 0 TO 6 <br> 240 READ a$(I) <br> 250 NEXT <br> 260 L1 = 2: L2 = 38: GOSUB 610 <br> 270 PRINT TAB(39); C(0); <br> 280 L1 = 45: L2 = 79: GOSUB 610 <br> 290 GOSUB 640: GOSUB 650 <br> 300 FOR J = 0 TO 3 <br> 310 GOSUB 640 <br> 320 FOR I = 0 TO 2 <br> 330 PRINT TAB(15 + I * 25); “(”; J * 3 + I + 1; “)”; <br> 340 NEXT <br> 350 GOSUB 650: GOSUB 640: GOSUB 650: GOSUB 640 <br> 360 GOSUB 660: GOSUB 650: GOSUB 640: GOSUB 650 <br> 370 GOSUB 400 <br> 380 NEXT J <br> 390 L1 = 2: L2 = 79: GOSUB 610: PRINT : RESTORE 700: GOTO 20 <br> 400 X1 = 1: X2 = 1: X3 = 1 <br> 410 FOR L = 0 TO 5: GOSUB 640 <br> 420 FOR I = 0 TO 2 <br> 430 D = J * 3 + I + 1 <br> 440 IF D = 2 THEN 480 ELSE IF D = 4 THEN 470 <br> 450 IF D = 6 THEN 470 ELSE IF D = 9 THEN 470 <br> 460 IF D = 11 THEN 470 ELSE W = 31: GOTO 490 <br> 470 W = 30: GOTO 490 <br> 480 W = V <br> 490 IF I = 0 THEN Z = X1 ELSE IF I = 1 THEN Z = X2 ELSE Z = X3 <br> 500 M = (C(D) + Z) MOD 7 <br> 510 FOR N = M TO 6 <br> 520 IF Z > W THEN 580 <br> 530 IF Z < 10 THEN PRINT TAB(N * 3 + 6 + 25 * I); : PRINT USING “##”; Z; : GOTO 550 <br> 540 PRINT TAB(N * 3 + 5 + I * 25); : PRINT USING “###”; Z; <br> 550 Z = Z + 1 <br> 560 IF I = 0 THEN X1 = Z ELSE IF I = 1 THEN X2 = Z ELSE X3 = Z <br> 570 NEXT N <br> 580 NEXT I: GOSUB 650 <br> 590 NEXT L: GOSUB 640: GOSUB 650 <br> 600 RETURN <br> 610 FOR U = L1 TO L2 <br> 620 PRINT TAB(U); “*”; <br> 630 NEXT: RETURN <br> 640 L1 = 2: L2 = 2: GOSUB 610: RETURN <br> 650 L1 = 79: L2 = 79: GOSUB 610: RETURN <br> 660 FOR I = 0 TO 2 <br> 670 FOR Z = 0 TO 6 <br> 680 PRINT TAB(3 * Z + 6 + I * 25); : PRINT USING “\”; a$(Z); <br> 690 NEXT: NEXT: RETURN <br> 700 DATA 0,31,28,31,30,31,30,31,31,30,31,30 <br> 710 DATA “SU”,“MO”,“TU”,“WE”,“TH”,“FR”,“SA”
|