El código es el siguiente, lo programé utilizando como guía las indicaciones de Wikipedia y algo de prueba y error para terminarlo. Espero les sea tan útil como a mi.
//Recibe fecha en formato DD/MM/YYYY
function dia_semana(fecha){
fecha=fecha.split('/');
if(fecha.length!=3){
return null;
}
//Vector para calcular día de la semana de un año regular.
var regular =[0,3,3,6,1,4,6,2,5,0,3,5];
//Vector para calcular día de la semana de un año bisiesto.
var bisiesto=[0,3,4,0,2,5,0,3,6,1,4,6];
//Vector para hacer la traducción de resultado en día de la semana.
var semana=['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'];
//Día especificado en la fecha recibida por parametro.
var dia=fecha[0];
//Módulo acumulado del mes especificado en la fecha recibida por parametro.
var mes=fecha[1]-1;
//Año especificado por la fecha recibida por parametros.
var anno=fecha[2];
//Comparación para saber si el año recibido es bisiesto.
if((anno % 4 == 0) && !(anno % 100 == 0 && anno % 400 != 0))
mes=bisiesto[mes];
else
mes=regular[mes];
//Se retorna el resultado del calculo del día de la semana.
return semana[Math.ceil(Math.ceil(Math.ceil((anno-1)%7)+Math.ceil((Math.floor((anno-1)/4)-Math.floor((3*(Math.floor((anno-1)/100)+1))/4))%7)+mes+dia%7)%7)];
}
Para invocar a la función, basta con un llamado simple y enviar la fecha en el formato 'DD/MM/YYYY'. Un ejemplo de su uso se muestra a continuación.
alert(dia_semana('27/03/2082'));
Esperando sea de utilidad.
Author: Ing. Kristian Camilo Moreno
Mil gracias. Me ayudaste bastante =)
ResponderEliminarexcelente, muchas gracias
ResponderEliminarGRACIAS!
ResponderEliminarExcelente trabajo, funciona perfecto y me ahorró horas de desarrollo, muy agradecido amigo!
ResponderEliminarGracias por el aporte.. Fue muy util
ResponderEliminarGRACIAS!, me salvaste muchos problemas, desde VENEZUELA gracias
ResponderEliminarFuncional, Excelente trabajo.. mil gracias
ResponderEliminarcreo que es mas facil con las funciones de javascript http://www.tutorialspoint.com/javascript/date_getutcday.htm
ResponderEliminarno lo es, es mas facil con la funcion de kristian . Mil gracias!!
ResponderEliminarExcelente, justo lo que estaba buscando. Mil gracias ;)
ResponderEliminarGracias hermano!!!
ResponderEliminar