home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
cpm
/
basic
/
egbas.lbr
/
CAL.BZS
/
CAL.BAS
Wrap
BASIC Source File
|
1988-01-24
|
4KB
|
122 lines
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
";J;
1160 J=J+1
1170 IF