Obtener el dÃa de la semana de una fecha
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.
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.
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);
}
// 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);
}
