Obtener el día de la semana de una fecha

jezabel
28 de Septiembre del 2004
Hola, tengo un problemilla porque quiero obtener el día de la semana de una determinada fecha que introduce el usuario.
Lo hice con getDay(), pero esta función, por lo que tengo entendido, devuelve el día de la semana de la fecha actual y lo que necesito es de cualquier fecha.

Gracias.

Joaquin_gsm
28 de Septiembre del 2004
Espero que te sirva:


// Retorna el dia de la semana de una fecha en formato 'dd/mm/yyyy'
// Debe tener un formato ok
// Formato Oracle ('O'): L=2, M=3, X=4, J=5, V=6, S=7, D=1
// Formato natural : L, M, X, J, V, S, D
function diaSemana(fec, fmt) {
// Da problemas construir la decha con los dias, mes y año por separado (fecha.setMonth(mes))
// Parece solucionarse construyendo la fecha con todos los parametros (fecha = new Date(ano, mes, dia)).

if (fec=="") return;
//fecha = new Date(); // Se construye el objeto con las fechas mas adelante
ano = parseInt(fec.substring(6,10));
//fecha.setFullYear(ano);

mes = aEntero(fec.substring(3,5)) - 1;
//fecha.setMonth(mes); // da problemas con Septiembre; Lo considera Octubre

dia = aEntero(fec.substring(0,2));
//fecha.setDate(dia);

fecha = new Date(ano, mes, dia);
diaSemanaJS = fecha.getDay();

retorno = "";
if (fmt=='O') {
switch (diaSemanaJS) {
case 0 :
retorno = '5'; // J
break;
case 1 :
retorno = '6'; // V
break;
case 2 :
retorno = '7'; // S
break;
case 3 :
retorno = '1'; // D
break;
case 4 :
retorno = '2'; // L
break;
case 5 :
retorno = '3'; // M
break;
case 6 :
retorno = '4'; // X
}
} else {
switch (diaSemanaJS) {
case 0 :
retorno = 'D';
break;
case 1 :
retorno = 'L';
break;
case 2 :
retorno = 'M';
break;
case 3 :
retorno = 'X';
break;
case 4 :
retorno = 'J';
break;
case 5 :
retorno = 'V';
break;
case 6 :
retorno = 'S';
}
}
return(retorno);
}