10 CLEAR 1024:DIM DA$(9),MD%(12) 20 D1$=DATE$:D2$=D1$:D1=-1:D2=D1:DA=7:C=0 30 RESTORE 40 FOR I%=1 TO 12:READ MD%(I%):NEXT I% 50 FOR I%=0 TO 9:READ DA$(I%):NEXT I% 60 CLS 70 PRINT "Days between dates" 80 SCREEN 0,0 90 PRINT @280,"FROM TO ALL WKDA WKND DAY DBTW END"; 100 ON KEY GOSUB 1000,2000,3000,4000,5000,6000,7000,8000 200 IF D1<0 THEN D$=D1$:GOSUB 20000:D1=D:E1=E 220 IF D2<0 THEN D$=D2$:GOSUB 20000:D2=D:E2=E 240 PRINT @80, "from: ";D1$;TAB(20);"to: ";D2$;" " 250 M1=D1-7*INT(D1/7):M2=D2-7*INT(D2/7) 255 PRINT " ";DA$(M1);TAB(20);" ";DA$(M2);" ";:PRINT 260 PRINT DA$(DA);"s between: ";TAB(20);:PRINT USING "######";E2-E1; 270 PRINT SPACE$(39-POS(0)) 280 KEY ON:KF=0 290 C$=INKEY$:IF NOT KF THEN 290 300 GOTO 100 1000 KF=-1:KEY OFF 1010 PR$="From? ":IL%=10:GOSUB 10000 1020 IF IN$<>"" THEN GOSUB 12000:IF ER% THEN BEEP:GOTO 1010 1030 GOSUB 11000 1040 IF IN$<>"" THEN D1$=IN$:D1=-1 1050 RETURN 2000 KF=-1:KEY OFF 2010 PR$="To? ":IL%=10:GOSUB 10000 2020 IF IN$<>"" THEN GOSUB 12000:IF ER% THEN BEEP:GOTO 2010 2030 GOSUB 11000 2040 IF IN$<>"" THEN D2$=IN$:D2=-1 2050 RETURN 3000 KF=-1:KEY OFF:DA=7:GOTO 6050 4000 KF=-1:KEY OFF:DA=8:GOTO 6050 5000 KF=-1:KEY OFF:DA=9:GOTO 6050 6000 KF=-1:KEY OFF:PR$="Day (0=Sun,...)? ":IL%=1 6010 GOSUB 10000:IF IN$="" THEN GOSUB 11000:RETURN 6015 IF IN$<"0" OR IN$>"6" THEN 6010 6020 GOSUB 11000:DA=VAL(IN$) 6050 D=D1:GOSUB 21000:E1=E:D=D2:GOSUB 21000:E2=E:RETURN 7000 KF=-1:KEY OFF:PR$=DA$(DA)+"s? ":IL%=6 7010 GOSUB 10000:IF IN$="" THEN GOSUB 11000:RETURN 7020 J=1:C$=LEFT$(IN$,1):IF C$="+" OR C$="-" THEN J=2 7030 IF J>LEN(IN$) THEN 7010 7040 FOR I%=J TO LEN(IN$) 7050 C$=MID$(IN$,I%,1):IF C$<"0" OR C$ > "9" THEN 7010 7060 NEXT I% 7070 GOSUB 11000 7080 DB=VAL(IN$):GOSUB 30000:RETURN 8000 KEY OFF:MENU 10000 GOSUB 11000:IN$="":PRINT @240,PR$; 10010 C$=INPUT$(1) 10020 IF C$=CHR$(13) THEN RETURN 10030 IF C$=CHR$(8) OR C$=CHR$(127) THEN 10100 10040 IF C$=CHR$(24) THEN 10000 10050 IF C$<" " THEN 10010 10060 IF LEN(IN$)12 THEN ER%=-1:RETURN 12010 D$=RIGHT$("00"+W$,2) 12020 GOSUB 12200:IF ER% THEN RETURN 12025 D%=VAL(W$):D$=D$+"/"+RIGHT$("00"+W$,2) 12030 IF IN$="" THEN IN$=RIGHT$(DATE$,2) 12040 Y%=VAL(IN$) 12055 IF (LEN(IN$) MOD 2) THEN IN$="0"+IN$ 12060 IN$=D$+"/"+IN$ 12070 ER%=0:IF D%<=MD%(M%) THEN RETURN 12080 IF (Y% MOD 4=0)-(Y% MOD 100=0)+(Y% MOD 400=0)=0 THEN ER%=-1:RETURN 12090 IF M%=2 AND D%<=29 THEN RETURN 12100 ER%=-1:RETURN 12200 IF IN$="" THEN ER%=-1:RETURN 12205 I%=INSTR(IN$,"/"):IF I%=1 OR I%>5 THEN ER%=-1:RETURN 12210 IF I%=0 THEN W$=IN$:IN$="": ELSE W$=LEFT$(IN$,I%-1):IN$=RIGHT$(IN$,LEN(IN$)-I%) 12220 FOR I%=1 TO LEN(W$) 12230 C$=MID$(W$,I%,1):ER%=C$<"0" OR C$>"9":IF ER% THEN RETURN 12240 NEXT I% 12250 ER%=0:RETURN 20000 W=VAL(LEFT$(D$,2)):X=VAL(MID$(D$,4,2)):V=VAL(MID$(D$,7)) 20010 IF V<100 THEN V=1900+V 20020 Y=-INT ((14-W)/12) 20030 Z=X-32074+INT (1461*(V+4800+Y)/4) 20040 Z=Z+INT (367*(W-2-12*Y)/12) 20050 D=Z-INT (3*INT ((V+4900+Y)/100)/4) 21000 IF DA<7 THEN E=INT (D/7):E=E-(D-7*E>=DA):RETURN 21010 IF DA=7 THEN E=D:RETURN 21020 E=INT (D/7):E=2*E+1-(D-7*E=6):IF DA=8 THEN E=D-E 21030 RETURN 30000 IF DA<7 THEN R=DA+7*INT (D1/7):D2=R+7*(DB+(R>D1)):GOTO 30200 30010 IF DA=7 THEN D2=D1+DB:GOTO 30200 30020 IF DA<>8THEN 30100 30030 X=D1-7*INT (D1/7):R1=D1+(X=6)+2*(X=0):R=R1+DB+2*SGN (DB)*INT (ABS (DB/5)):X=R-7*INT (R/7) 30040 Y=R1-7*INT (R1/7):R=R+2*((X0)-(X>Y)*(DB<0)):X=R-7*INT (R/7) 30050 D2=R-2*((X=0)+(X=6))*SGN (DB):GOTO 30200 30100 X=D1-7*INT (D1/7):R=D1+X*(X<6)+DB+5*INT (DB/2):X=R-7*INT (R/7) 30110 D2=R-6*(X>0)-X 30200 X=D2+68568:Y=INT (4*X/146097):X=X-INT ((146097*Y+3)/4) 30210 YR=INT (4000*(X+1)/1461001):X=X-INT (1461*YR/4)+31 30220 MO=INT (80*X/2447):DY=X-INT (2447*MO/80):X=INT (MO/11) 30230 MO=MO+2-12*X:YR=100*(Y-49)+YR+X 30300 W$=STR$(MO):GOSUB 31000:D2$=RIGHT$("00"+W$,2) 30310 W$=STR$(DY):GOSUB 31000:D2$=D2$+"/"+RIGHT$("00"+W$,2) 30320 W$=STR$(YR):GOSUB 31000 30330 IF YR>=1900 AND YR<2000 THEN W$=RIGHT$(W$,2):GOTO 30350 30340 IF LEN(W$)<4 THEN W$=RIGHT$("0000"+W$,4) 30350 D2$=D2$+"/"+W$:D=D2:GOSUB 21000:E2=E:RETURN 31000 IF W$<>"" THEN IF LEFT$(W$,1)=" " THEN W$=RIGHT$(W$,LEN(W$)-1):GOTO 31000 31010 RETURN 50000 DATA 31,28,31,30,31,30,31,31,30,31,30,31 50010 DATA Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Day,Week day,Wkend day