10 ! DATUMBER.800 30 ! EFTER 'DATUM.BAS' ABC KAS 1 50 ! av (c) Johan Hedin <525> 100 ! [ndrat f|r ABC800-806 80 TECKEN av B M}rtensson Word & Music Lund. 101 ! ============================================== 110 FLOAT : NO EXTEND 120 DIM A1(12),A2(12) 130 FOR I=1 TO 12 140 READ A1(I),A2(I) 150 IF I<8 READ A$(I) 160 A1(I)=A1(I)+30 : NEXT I 170 DATA 1,0,L\RDAG,-2,31,S\NDAG,1,59 180 DATA M]NDAG,0,90,TISDAG,1,120 190 DATA ONSDAG,0,151,TORSDAG,1,181 200 DATA FREDAG,1,212,0,243,1,273,0 210 DATA 304,1,334 220 ON ERROR GOTO 220 230 ; CHR$(12); : ; " DATUMBER.800 ";TAB(80) "" 240 ; STRING$(80,61) 250 ; 260 ; "Programmet ber{knar antalet dagar mellan tv} datum" 270 ; "och {ven vilka veckodagar de tv} datumen inf|ll p}." 280 ; : ; 290 ; "F|rsta datum (=det h|gsta):" 300 INPUT "]R (]])? "] 301 INPUT "M]N (MM)? "M 302 INPUT "DAG (DD)? "D 310 ; 320 IF ]<100 ]=]+1900 330 GOSUB 440 : IF I=0 420 340 I1=I : A1=A 350 ; "Andra datum:" 351 INPUT "]R (]])? "] 352 INPUT "M]N (MM)? "M 353 INPUT "DAG (DD)? "D 360 IF ]<100 ]=]+1900 370 GOSUB 440 : IF I=0 420 380 ; 390 ; "Skillnaden =" ABS(A-A1) "dagar." 400 ; "F|rsta datumet var en " A$(I1) "." 410 ; "Andra datumet var en " A$(I) "." 420 ; : ; "Vill du forts{tta (J/N)? "; 430 GET A$ : IF A$="N" OR A$="n" GOTO 640 ELSE GOTO 220 440 REM OTILl]TET DATUM? 450 IF M>12 630 460 I=0 : IF M<>2 GOTO 500 470 IF ]/4<>INT(]/4) 500 480 IF ]/400=INT(]/400) I=1 : GOTO 500 490 IF ]/100<>INT(]/100) I=1 500 IF D>A1(M)+I THEN 630 510 A=A2(M)+]*365+INT(]/4)+D+1 520 A=A-INT(]/100)+INT(]/400) 530 IF ]/4<>INT(]/4) 570 540 IF ]/400=INT(]/400) 560 550 IF ]/100=INT(]/100) 570 560 IF M<3 A=A-1 570 IF M>2 590 580 M=M+12 : ]=]-1 590 I=D+2*M+INT(.6*(M+1))+]+INT(]/4) 600 I=I-INT(]/100)+INT(]/400)+2 610 I=INT((I/7-INT(I/7))*7+.5)+1 620 RETURN 630 ; CHR$(7) : ; "Datum st{mmer inte! F|rs|k igen." : RETURN 640 END