0 REM 02-02-85 <-- last backup 10 PRINT CHR$(26) 20 PRINT"Eric Gans" 30 PRINT"French Department UCLA" 40 PRINT"Los Angeles, CA 90024" 50 PRINT"02/02/85" 60 PRINT 70 REM written by Eric Gans 6/24/84 80 DEFINT A-Z 90 REM calendar pgm 100 PRINT TAB(7)STRING$(52,42) 110 PRINT TAB(7)"*"TAB(30)"CAL"TAB(58)"*" 120 PRINT TAB(7)"* This program gives the day of the week for any *" 130 PRINT TAB(7)"* date. It also displays/prints a calendar for any *" 140 PRINT TAB(7)"* month or for an entire year. *" 150 PRINT TAB(7)STRING$(52,42) 160 PRINT 170 DIM CM(12),M$(12) 180 DATA 0,3,3,6,1,4,6,2,5,0,3,5 190 FOR I=1 TO 12:READ CM(I):NEXT 200 DATA Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday 210 FOR I=0 TO 6:READ D$(I):NEXT 220 DATA January,February,March,April,May,June,July,August,September 230 DATA October,November,December 240 FOR I=1 TO 12:READ M$(I):NEXT 250 INPUT "Year";Y 260 IF Y=0 THEN END 270 PRINT"Print year calendar (y/n)?" 280 E$=INPUT$(1):IF E$<>"y" AND E$<>"n" THEN 280 290 NY=Y-1 300 DAYJ=(1+NY+NY\4-NY\100+NY\400)MOD 7:DAYJ=(7+DAYJ)MOD 7 310 IF E$="y" THEN 750 320 INPUT "Month";M 330 IF M<1 OR M>12 THEN PRINT CHR$(7);:GOTO 320 340 LM=28+(CM((M+1)MOD 13)-CM(M)+7)MOD 7 350 IF M=12 OR (M=2 AND Y MOD 4=0 AND NOT(Y MOD 100=0 AND Y MOD 400<>0)) THEN LM=LM+1 360 DAYM=(DAYJ+CM(M))MOD 7 370 IF Y MOD 4=0 AND M>2 AND NOT(Y MOD 100=0 AND Y MOD 400<>0) THEN DAYM=DAYM+1 380 INPUT "Day (0 for calendar)";D 390 IF D=0 THEN 450 400 IF D<1 OR D>LM THEN PRINT CHR$(7);:GOTO 380 410 DW=(DAYM+D-1)MOD 7 420 PRINT"Day of week is: "D$(DW) 430 PRINT:PRINT"See calendar (y or n)? "; 440 E$=INPUT$(1):IF E$="n" GOTO 460 ELSE IF E$<>"y" GOTO 440 450 GOSUB 510 460 PRINT:PRINT"More (y or n)?" 470 PRINT 480 E$=INPUT$(1) 490 IF E$="y" GOTO 250 ELSE IF E$<>"n" GOTO 480 500 END 510 REM print cal 520 PRINT"To print out, ready printer, type any key -->"; 530 E$=INPUT$(1) 540 PRINT:PRINT 550 LPRINT:LPRINT 560 PRINT TAB(25)CHR$(27)"B3"M$(M)" "Y;CHR$(27)"C3"CHR$(8)CHR$(32) 570 LPRINT TAB(32)CHR$(27)"C "M$(M)" "Y;CHR$(27)"D" 580 PRINT 590 LPRINT:LPRINT 600 PRINT TAB(10); 610 LPRINT TAB(17); 620 FOR I=0 TO 6:LPRINT USING"\ \";D$(I);:PRINT USING"\ \";D$(I);:LPRINT" ";:PRINT" ";:NEXT:PRINT:LPRINT:LPRINT 630 PRINT" "; 640 LPRINT TAB(12); 650 PRINT SPACE$(7*((DAYM)MOD 7)); 660 LPRINT SPACE$(7*((DAYM)MOD 7)); 670 FOR I=1 TO LM 680 PRINT USING"#######";I; 690 LPRINT USING"#######";I; 700 IF (DAYM+I)MOD 7=0 THEN PRINT:PRINT" ";:LPRINT:LPRINT:LPRINT TAB(12); 710 NEXT 720 PRINT 730 LPRINT 740 RETURN 750 REM adapted 10/13/84 760 PRINT"To print, ready printer; type any key --->";:E$=INPUT$(1) 770 REM prints year calendar 780 D$=CHR$(27)+"B3"+"S M T W T F S"+CHR$(27)+"C3" 790 DP$=CHR$(27)+"C"+"S M T W T F S"+CHR$(27)+"D" 800 PRINT:PRINT 810 PRINT TAB(33)Y" CALENDAR" 820 LPRINT TAB(35)CHR$(31)Y;CHR$(30) 830 FOR M=1 TO 6 840 LM=28+(CM((M+1)MOD 13)-CM(M)+7)MOD 7 850 LM2=28+(CM((M+7)MOD 13)-CM(M+6)+7)MOD 7 860 IF (M=2 AND Y MOD 4=0 AND NOT(Y MOD 100=0 AND Y MOD 400<>0)) THEN LM=LM+1 870 IF M=6 THEN LM2=LM2+1 880 DAYM=(DAYJ+CM(M))MOD 7:DAYM2 =(DAYJ+CM(M+6))MOD 7 890 IF Y MOD 4=0 AND M>2 AND NOT(Y MOD 100=0 AND Y MOD 400<>0) THEN DAYM=DAYM+1 900 IF Y MOD 4=0 AND NOT(Y MOD 100=0 AND Y MOD 400<>0) THEN DAYM2=DAYM2+1 910 J=1 920 REM print cal 930 PRINT:PRINT TAB(20)M$(M);TAB(55)M$(M+6) 940 LPRINT:LPRINT TAB(20)M$(M);TAB(55)M$(M+6) 950 PRINT:PRINT TAB(14)D$;TAB(53)D$ 960 LPRINT:LPRINT TAB(14)DP$;TAB(53)DP$ 970 PRINT SPACE$(11+3*((DAYM)MOD 7)); 980 LPRINT SPACE$(11+3*((DAYM)MOD 7)); 990 FOR I=1 TO LM 1000 PRINT USING"###";I; 1010 LPRINT USING"###";I; 1020 IF (DAYM+I)MOD 7=0 OR I=LM THEN GOSUB 1100 1030 NEXT 1040 GOSUB 1100:IF LM=28 AND DAYM=0 THEN GOSUB 1100 1050 NEXT M 1060 PRINT:PRINT:LPRINT:LPRINT 1070 PRINT"More (y/n)?" 1080 Y$=INPUT$(1):IF Y$="n" THEN END ELSE IF Y$<>"y" THEN 1080 1090 GOTO 250 1100 REM month+6 1110 IF J>LM2 THEN RETURN 1120 IF J=1 THEN PRINT TAB(47+3*((DAYM2)MOD 7)); ELSE PRINT TAB(47); 1130 IF J=1 THEN LPRINT TAB(47+3*((DAYM2)MOD 7)); ELSE LPRINT TAB(47); 1140 PRINT USING"###";J; 1150 LPRINT USING"###";J; 1160 J=J+1 1170 IF (DAYM2+J-1)MOD 7=0 OR J>LM2 THEN PRINT:LPRINT:PRINT SPC(11);:LPRINT SPC(11);:RETURN 1180 GOTO 1140