10 DIM M$(12),M(12) 20 DATA "JANUARY","FEBUARY","MARCH" 30 DATA "APRIL","MAY","JUNE" 40 DATA "JULY","AUGUST","SEPTEMBER" 50 DATA "OCTOBER","NOVEMBER","DECEMBER" 60 DATA 31,28,31,30,31,30 70 DATA 31,31,30,31,30,31 80 FOR X=1 TO 12:READ M$(X):NEXT X 90 FOR X=1 TO 12:READ M(X):NEXT X 100 CLS 110 PRINT@40*3+8,"WHAT YEAR (1984) "; 120 INPUT YR 130 IF YR<1582 OR YR>10000 THEN 110 140 PRINT@40*4+8,"WHAT MONTH (1-12) "; 150 INPUT MO 160 IF MO<1 OR MO>12 THEN 140 170 CLS 180 LINE(46,4)-(194,63),1,BF 190 LINE(50,8)-(190,60),0,BF 200 PRINT@40*2+11,"BOB JACK SOFTWARE" 210 PRINT@40*4+16,"PRESENTS" 220 PRINT@40*6+11,"PERPETUAL CALENDAR" 230 DAYS=6 240 Y=INT(YR/100) 250 IF Y=15 THEN 310 260 FOR X=15 TO Y-1 270 DAYS=DAYS-1 280 IF X/4=INT(X/4) THEN DAYS=DAYS-1 290 NEXT X 300 IF DAYS<1 THEN DAYS=DAYS+7:GOTO 300 310 IF YR/100=Y THEN 370 320 BEG=100*Y 330 FOR X=BEG TO YR-1 340 DAYS=DAYS+1 350 IF X/4=INT(X/4) AND X/400<>INT(X/400) THEN DAYS=DAYS+1 360 NEXT X 370 IF MO=1 THEN 420 380 FOR X=1 TO MO-1 390 DAYS=DAYS+M(X) 400 IF X=2 AND YR/4=INT(YR/4) AND YR/400<>INT(YR/400) THEN DAYS=DAYS+1 410 NEXT X 420 IF DAYS<1 THEN DAYS=DAYS+7:GOTO 420 430 IF DAYS>7 THEN DAYS=DAYS-7:GOTO 430 440 D=DAYS 450 CLS 460 R=INT((35-LEN(M$(MO)))/2) 470 PRINT@R,M$(MO);YR 480 PRINT@40*1+3,"SUN MON TUE WED THU FRI SAT" 490 CNT=1 500 NM=M(MO) 510 IF MO=2 AND YR/4=INT(YR/4) AND YR/400<>INT(YR/400) THEN NM=NM+1 520 PRINT " "; 530 FOR X=1 TO 7 540 IF XINT(YR/400) THEN DAYS=DAYS+1 730 MO=MO+1 740 IF MO>12 THEN MO=1:YR=YR+1 750 GOTO 420 760 MO=MO-1 770 IF MO<1 THEN MO=12:YR=YR-1 780 DAYS=DAYS-M(MO) 790 IF MO=2 AND YR/4=INT(YR/4) AND YR/400<>INT(YR/400) THEN DAYS=DAYS-1 800 GOTO 420 810 DAYS=DAYS+1 820 IF MO<3 AND YR/4=INT(YR/4) AND YR/400<>INT(YR/400) THEN DAYS=DAYS+1 830 YR=YR+1 840 IF MO>2 AND YR/4=INT(YR/4) AND YR/400<>INT(YR/400) THEN DAYS=DAYS+1 850 GOTO 420 860 DAYS=DAYS-1 870 IF MO>2 AND YR/4=INT(YR/4) AND YR/400<>INT(YR/400) THEN DAYS=DAYS-1 880 YR=YR-1 890 IF MO<3 AND YR/4=INT(YR/4) AND YR/400<>INT(YR/400) THEN DAYS=DAYS-1 900 GOTO 420