Program to calculate the day of the week given the current date, number of days between a date, and convert number to text.
Content
Source Code
10 LET X=VAL N$(A)+18*(X1=1)
15 DIM G$(9)
20 FOR J=1 TO 9
30 IF D$(X,J)=" " THEN GOTO 60
40 LET G$(J)=D$(X,J)
50 NEXT J
60 LET H=J-1
70 RETURN
500 CLS
505 SLOW
510 PRINT AT 18,0;"INPUT:"
520 PRINT AT 19,0;"D=DAY OF WEEK"
530 PRINT AT 20,0;"N=NUMBER OF DAYS BETWEEN"
540 PRINT AT 21,0;"T=DOLLARS/CENTS TO TEXT"
550 IF INKEY$="D" THEN GOTO 1000
560 IF INKEY$="N" THEN GOTO 1500
570 IF INKEY$="T" THEN GOTO 2000
580 GOTO 510
\n1000 DIM B$(24)
\n1010 LET B$=" MONTUEWEDTHUFRISATSUN"
\n1020 CLS
\n1022 PRINT "INPUT MONTH NUMBER=";
\n1024 INPUT M
\n1026 PRINT M
\n1030 PRINT "INPUT DAY NUMBER=";
\n1040 INPUT D
\n1050 PRINT D
\n1090 PRINT "INPUT YEAR (XXXX)=";
\n1100 INPUT Y
\n1110 PRINT Y
\n1120 LET Q=Y-(M<3)
\n1130 LET K=Q/100
\n1140 LET T=M+12*(M<3)
\n1150 LET R=INT (13*(T+1)/5)+INT (5*Q/4)-INT (K)+INT (K/4)+D+5
\n1160 LET R=R-(7*INT (R/7))+1
\n1165 PRINT
\n1170 PRINT M;"/";D;"/";Y;"=";B$((R*3) TO (R*3)+2)
\n1180 GOTO 505
\n1500 CLS
\n1510 PRINT "INPUT MONTH 1 NUMBER=";
\n1520 INPUT M1
\n1525 PRINT M1
\n1530 PRINT "INPUT DAY 1 NUMBER=";
\n1540 INPUT D1
\n1550 PRINT D1
\n1560 PRINT "INPUT YEAR 1 (XXXX)=";
\n1570 INPUT Y1
\n1575 PRINT Y1
\n1577 PRINT "INPUT MONTH 2 NUMBER=";
\n1578 INPUT M2
\n1580 PRINT M2
\n1590 PRINT "INPUT DAY 2 NUMBER=";
\n1600 INPUT D2
\n1605 PRINT D2
\n1610 PRINT "INPUT YEAR 2 (XXXX)=";
\n1620 INPUT Y2
\n1625 PRINT Y2
\n1630 LET Y=365*(Y2-Y1)
\n1640 LET M=31*(M2-M1)
\n1650 LET D=D2-D1
\n1660 LET X=INT ((.4*M2+2.3)*(M2>2))-INT ((.4*M1+2.3)*(M1>2))
\n1670 LET Z=INT ((Y2-(M2<=2))/4)-INT ((Y1-(M1<=2))/4)
\n1675 PRINT
\n1680 PRINT "DAYS BETWEEN=";ABS (Y+M+D-X+Z)
\n1690 GOTO 505
\n2000 CLS
\n2010 DIM D$(27,9)
\n2021 LET D$(1)="ONE"
\n2022 LET D$(2)="TWO"
\n2023 LET D$(3)="THREE"
\n2024 LET D$(4)="FOUR"
\n2025 LET D$(5)="FIVE"
\n2026 LET D$(6)="SIX"
\n2027 LET D$(7)="SEVEN"
\n2028 LET D$(8)="EIGHT"
\n2029 LET D$(9)="NINE"
\n2030 LET D$(10)="TEN"
\n2031 LET D$(11)="ELEVEN"
\n2032 LET D$(12)="TWELVE"
\n2033 LET D$(13)="THIRTEEN"
\n2034 LET D$(14)="FOURTEEN"
\n2035 LET D$(15)="FIFTHTEEN"
\n2036 LET D$(16)="SIXTEEN"
\n2037 LET D$(17)="SEVENTEEN"
\n2038 LET D$(18)="EIGHTEEN"
\n2039 LET D$(19)="NINETEEN"
\n2040 LET D$(20)="TWENTY"
\n2042 LET D$(21)="THIRTY"
\n2044 LET D$(22)="FORTY"
\n2050 LET D$(23)="FIFTY"
\n2060 LET D$(24)="SIXTY"
\n2070 LET D$(25)="SEVENTY"
\n2080 LET D$(26)="EIGHTY"
\n2090 LET D$(27)="NINETY"
\n2500 PRINT "ENTER AMOUNT=";
\n2510 INPUT N
\n2515 PRINT N
\n2520 IF N<10000 THEN GOTO 2550
\n2530 PRINT "NUMBER TOO LARGE"
\n2540 GOTO 2500
\n2550 IF N>=.01 THEN GOTO 2580
\n2560 PRINT "NO NEGATIVE NUMBERS"
\n2570 GOTO 2500
\n2580 LET N1=N
\n2590 LET N=INT (N*100+.001)
\n2600 LET N$=STR$ (N)
\n2605 LET L=LEN N$
\n2610 PRINT
\n2620 PRINT "***";
\n2630 IF N>=100 THEN GOTO 2700
\n2631 LET A=1
\n2632 IF L=1 THEN GOTO 2648
\n2634 IF VAL N$(1)=0 THEN GOTO 2646
\n2636 IF VAL N$(1)<2 THEN GOTO 2654
\n2638 LET X1=1
\n2640 GOSUB 10
\n2642 PRINT G$(1 TO H);
\n2644 LET X1=0
\n2646 LET A=A+1
\n2648 GOSUB 10
\n2650 PRINT G$(1 TO H);
\n2652 GOTO 2680
\n2654 LET X=VAL N$(1 TO 2)
\n2656 GOSUB 15
\n2658 GOTO 2650
\n2680 PRINT " CENTS AND NO DOLLARS***"
\n2690 GOTO 505
\n2700 LET A=1
\n2705 LET X1=0
\n2710 GOTO 2620+(7-L)*100
\n2720 GOSUB 10
\n2730 PRINT G$(1 TO H);" THOUSAND ";
\n2740 LET A=A+1
\n2750 IF VAL N$(A)=0 THEN GOTO 2840
\n2820 GOSUB 10
\n2830 PRINT G$(1 TO H);" HUNDRED ";
\n2840 LET A=A+1
\n2850 IF VAL N$(A)=0 THEN GOTO 2950
\n2920 LET X1=1
\n2925 IF VAL N$(A)=1 THEN GOTO 3200
\n2930 GOSUB 10
\n2940 PRINT G$(1 TO H);" AND ";
\n2950 LET A=A+1
\n2960 LET X1=0
\n2990 IF VAL N$(A)=0 THEN GOTO 3040
\n3020 GOSUB 10
\n3030 PRINT G$(1 TO H);" AND ";
\n3040 LET A=A+1
\n3060 PRINT VAL N$(A);
\n3070 LET A=A+1
\n3075 IF VAL N$(A)=0 THEN GOTO 3100
\n3080 PRINT VAL N$(A);
\n3090 GOTO 3110
\n3100 PRINT "0";
\n3110 PRINT "/100 DOLLARS***"
\n3120 GOTO 505
\n3200 LET X=VAL N$(A TO A+1)
\n3210 GOSUB 15
\n3220 PRINT G$(1 TO H);" AND ";
\n3230 LET X1=0
\n3240 LET A=A+1
\n3250 GOTO 3040
\n9550 SAVE "UT%Y"
\n9555 LET A$="UTY"
\n9560 FAST
\n9565 LET N=0
\n9570 FOR L=5 TO 19 STEP 7
\n9575 LET N=N+1
\n9580 LET C=CODE A$(N)
\n9585 FOR H=0 TO 7
\n9590 LET P=PEEK (7680+C*8+H)
\n9595 LET V=128
\n9600 FOR G=0 TO 7
\n9605 IF P<V THEN GOTO 9625
\n9610 PRINT AT H+3,G+L;"% "
\n9615 LET P=P-V
\n9620 GOTO 9630
\n9625 PRINT AT H+3,G+L;"\@@"
\n9630 LET V=V/2
\n9635 NEXT G
\n9640 NEXT H
\n9645 NEXT L
\n9650 PRINT " UTILITY PROGRAMS COPYRIGHT UAS"
\n9655 PRINT "BOX 612 HADDONFIELD, N.J. 08033"
\n9660 PAUSE 200
\n9670 CLS
\n9680 GOTO 500