' MAKE USING("FORMAT STRING", PAR1, PAR2, ...PARN) ' WE USE READ V TO READ MORE PARAMETERS. FUNCTION USING(A$) { VARIANT V : LONG D, S, E, I=1: S$="" WHILE I<=LEN(A$) IF S THEN IF MID$(A$,I,1)<>"#" THEN IF MID$(A$,I,1)="." THEN D=I ELSE E=I END IF ELSE IF MID$(A$,I,1)="#" THEN S=I END IF IF S AND E THEN IF S>1 THEN S$+=LEFT$(A$, S-1) A$=MID$(A$, E) G() S=0:E=0:D=0 I=1 END IF I++ END WHILE IF S THEN IF S>1 THEN S$+=LEFT$(A$, S-1):E=I-S+1: S=1 ELSE E=I G() =S$ ELSE =S$+A$ END IF SUB G() IF ISNUM THEN READ V IF D>0 THEN S$+=STR$(V, STRING$("#",E-D-1)+"0."+STRING$("0",D-S+1)) ELSE S$+=STR$(V, STRING$("0",E-S-1)+"0") END IF ELSE V="" READ V S$+=LEFT$(V+STRING$(" ", E-S), E-S) END IF END SUB } 05 FLUSH : GOSUB 110 10 DIM D$(1 TO 7): FOR I=1 TO 7: READ D$(I): NEXT I 20 DIM D(1 TO 12, 0 TO 1): FOR I=0 TO 1: FOR J=1 TO 12: READ D(J, I): NEXT J : NEXT I 30 READ Y: IF Y=0 THEN BREAK ELSE READ M,D 40 PRINT USING("##/##/#### ", M, D, Y); 50 C=Y DIV 100: R=Y MOD 100 60 S=R DIV 12: T=R MOD 12 70 A=(5*BINARY.AND(C, 3)+2) MOD 7 80 B=(S+T+(T DIV 4)+A) MOD 7 90 PRINT D$((B+D-D(M,-(Y MOD 4=0 AND (Y MOD 100<>0 OR Y MOD 400=0)))+7) MOD 7+1) 100 GOTO 30 110 DATA "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday" 120 DATA 3,7,7,4,2,6,4,1,5,3,7,5 130 DATA 4,1,7,4,2,6,4,1,5,3,7,5 140 DATA 1800,1,6,1875,3,29,1915,12,7,1970,12,23 150 DATA 2043,5,14,2077,2,12,2101,4,2,0 160 RETURN