Paco,
> Gracias Xevi.
>
> Ahora tengo un pequeño problema.
>
> Me devuelve, por ejemplo, Sábado, y al cambiar a Mayusculas con UPPER me da
> S BADO.
>
> Sabemos alguna solución.
SET BROMA ON
Sí. No cambies a mayúsculas usando upper()

SET BROMA OFF
En serio, es un problema de xHarbour. No recuerdo como hacía clipper con
las letras acentuadas, pero creo que las cambiaba a mayúsculas sin acento.
Entre las soluciones que se me ocurren para salir del paso, te propongo
esta:
FUNCTION DiaSemana( dFecha, lMay )
// dFecha -> Fecha de la que se quiere saber el día de la semana.
// lMay -> .T. para devolver la fecha en mayúsculas.
LOCAL aDiasSemana
lMay := IF( lMay == NIL, .F., lMay )
aDiasSemana := { { "Domingo", "DOMINGO" },;
{ "Lunes", "LUNES" },;
{ "Martes", "MARTES" },;
{ "Miércoles", "MIí‰RCOLES" },;
{ "Jueves", "JUEVES" },;
{ "Viernes", "VIERNES" },;
{ "Sábado", "SíBADO" } }
RETURN aDiasSemana[ Dow( dFecha ) ][ IF( lMay, 2, 1 ) ]
Saludos,
Jose A. Suarez