DAY$()

Compatible with:
DOS Maximite CMM MM150 MM170 MM+ MMX Picromite ArmiteL4 Armite F4 ArmiteH7 Picomite CMM2

Syntax:
DAY$(date$)

Description:
Returns the day of the week for a given date as a string “Monday”, “Tuesday” etc. 
The format for date$ is “dd-mm-yyyy”., "dd-mm-yy" or "yyyy-mm-dd"
Use NOW to get the day for the current date, e.g. ? DAY$(NOW)

If your system doesn't have DAY$(),

 today$ = "13-09-2020" 'date$
 PRINT today$
 PRINT dayX$(today$)
 PRINT DayL$(today$)
 
FUNCTION DayX$(dt$)
 LOCAL INTEGER d,m,y,jd,weekday
 d=VAL(MID$(dt$,1,2))
 m=VAL(MID$(dt$,4,2))
 y=VAL(MID$(dt$,7,4))
 IF m < 3 THEN m = m+12:y=y-1
 jd= d + FIX(365.25*(Y+4716)) + FIX(30.6001*(M+1)) - y\100 + y\400 + 4
 weekday = (jd MOD 7) + 1
 DayX$ = MID$("  MonTueWedThuFriSatSun",weekday*3,3)
END FUNCTION

FUNCTION DayL$(dt$)
 LOCAL INTEGER d,m,y,jd,weekday,k
 d=VAL(MID$(dt$,1,2))
 m=VAL(MID$(dt$,4,2))
 y=VAL(MID$(dt$,7,4))
 IF m < 3 THEN m = m+12:y=y-1
 jd= d + FIX(365.25*(Y+4716)) + FIX(30.6001*(M+1)) - y\100 + y\400 + 4
 weekday = (jd MOD 7) + 1
 DayL$ = MID$("        Monday   Tuesday  WednesdayThursday Friday   Saturday Sunday   ",weekday*9,9)
 k = INSTR(DayL$, " ")
 IF k > 1 THEN DayL$=LEFT$(DayL$,k-1)
END FUNCTION

Last edited: 08 May, 2021