' This program exported from BASIC Anywhere Machine (Version [5.2.3].[2023.12.16.16.28]) on 2023.12.23 at 17:35 (Coordinated Universal Time)
' ⚠⚠⚠ TEST version of BAM which ignores leading zeroes in line numbers
_TITLE "Weekday Program"
' BAM port by Charlie Veniot
' of program shared by Carlos Mencia

🟑🟑🟑_Declarations:

    CONST Weekday$(0 TO 6) = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}
    SUB PrintItem(label$,v$)
        COLOR 14 : PRINT LEFT$(label$ + ":" + SPACE$(5), 9); : COLOR 15 : PRINT v$
    END SUB
    
🟑🟑🟑_MainProgram:

005 SCREEN _NEWIMAGE(144, 112, 7)

010 CLS : _DELAY 0.01
011 inD = _PROMPT( " WHICH WEEKDAY ?\n\n DAY:", MID$( DATE$, 4, 2) )
    inM = _PROMPT( " WHICH WEEKDAY ?\n\n DAY: " + inD + "\n MONTH: " , MID$( DATE$, 1, 2) )
    inY = _PROMPT( " WHICH WEEKDAY ?\n\n DAY: " + inD + "\n MONTH: " + inM + "\n YEAR: " , MID$( DATE$, 7, 4) )

015 D = inD : M = inM : Y = inY
030 I = INT( Y / 100 )
    Y = Y ⁣-⁣ I * 100
    IF M < 3 THEN LET M = M + 12 : Y = Y ⁣-⁣ 1
040 Z = ( D + INT( 2.6 * (M+1) ) _
          + INT( 1.25 * Y ) _
          + INT( I / 4 ) _
          ⁣-⁣ 2 * I ⁣-⁣ 1 )
050 X = Z / 7
    Y = Z ⁣-⁣ INT(X) * 7

055 COLOR 11 : PRINT "WHICH WEEKDAY ?" : PRINT
    PrintItem( "DAY", inD )
    PrintItem( "MONTH", inM )
    PrintItem( "YEAR", inY )
060 PRINT : PrintItem( "WEEKDAY", Weekday$(Y) )
    
130 COLOR 7 : PRINT
    PRINT "Click/touch the
    PRINT "screen or press"
    PRINT "a key on your"
    PRINT "keyboard to find"
    PRINT "another weekday."
    SLEEP
    GOTO 10
    
140 END


🟑🟑🟑_OriginalSourceCode:

'10 PRINT " WHICH WEEKDAY ?"
'20 CLEAR:INPUT "Day:";D:INPUT "Month:";M:INPUT "Year:";Y
'30 I=INT(Y/100):Y=Y⁣-⁣I*100:IF M<3 THEN LET M=M+12:Y=Y⁣-⁣1
'40 Z=(D+INT(2.6*(M+1))+INT(1.25*Y)+INT (I/4)⁣-⁣2*I⁣-⁣1)
'50 X=Z/7:Y=Z⁣-⁣INT(X)*7
'60 IF Y=0 THEN PRINT "Sunday"
'70 IF Y=1 THEN PRINT "Monday"
'80 IF Y=2 THEN PRINT "Tuesday"
'90 IF Y=3 THEN PRINT "Wednesday"
'100 IF Y=4 THEN PRINT "Thursday"
'110 IF Y=5 THEN PRINT "Friday"
'120 IF Y=6 THEN PRINT "Saturday"
'130 PRINT :INPUT"Again Y/N";Q$:IF Q$="Y"THEN 20
'140 END