Yo prefiero usar una funcion de este tipo, porque que es mucho menos costoso computacionalmente usar un array que un case, ademas de que es mucho mas facil de "internacionalizar" si necesitamos los dias de la semana en distintos idiomas:
Código Delphi
[-]
function WeekDay(Date:TDateTime):string;
const
WeekDays: array [1..7] of string= ('Domingo' , 'Lunes' , 'Martes' , 'Miercoles' , 'Jueves' ,'Viernes' ,'Sabado' );
begin
Result:= WeekDays[DayOfWeek(Date)];
end;
Saludos