Saludos, tengo un codigo que copie de una pregunta en este foro para contar dias habiles(L-V sin feriados) la cual funciona bien, pero intente modificarla para que me cuente las horas habiles que estan entre la fecha de inicio y la de final tomando en cuenta que de lunes a jueves se trabajan 9 horas y los viernes 8 horas, si la fecha de inicio es desde un lunes a un viernes no hay problema pero si hago que la fecha de inicio sea de un viernes y la de final un martes no cuenta las horas.
Código Javascript
:
Ver originalfunction calcularnombramiento(){
var inicinomb=document.getElementById('nombdesde').value;
var hoy = new Date(inicinomb);
var finnomb=document.getElementById('nombhasta').value;
var manana = new Date(finnomb);
var fechaformated=hoy.toLocaleFormat('%m/%d');
if(hoy.getDay() != 6 && hoy.getDay() != 0 && (estaarray(fechaformated) )){
i=1;
}else{
i=0;
}
if(hoy.getDay() != 5 && hoy.getDay() != 6 && hoy.getDay() != 0 && estaarray(fechaformated) )){
b=1;
horahabil=9;
}else{
b=0;
horahabil=0;
}
// if(hoy.getDay() == 5 && hoy.getDay() != 6 && hoy.getDay() != 0 && (fechaformated!=juevessanto && fechaformated!=viernessanto &&
//fechaformated!=enero && fechaformated!=trabajador && fechaformated!=julio && fechaformated!=madres && fechaformated!=indepen
//&& fechaformated!=raza && fechaformated!=navidad )){
a=0;
horahabilv=8;
// }else{
// a=1;
// horahabilv=0;
// }
//a=0;
//horahabilv=8;
while (hoy<manana) {
hoy.setTime(hoy.getTime()+24*60*60*1000); // añadimos 1 día
var fechaformated=hoy.toLocaleFormat('%m/%d');
if (hoy.getDay() != 6 && hoy.getDay() != 0 && (estaarray(fechaformated))){
i++;
}
if (hoy.getDay() != 5 && hoy.getDay() != 6 && hoy.getDay() != 0 && (estaarray(fechaformated))){
b++;
}
if (hoy.getDay() == 5 && hoy.getDay() != 6 && hoy.getDay() != 0 && (estaarray(fechaformated) )){
a++;
}
}
sumahorahabil=horahabil*b;
sumahorahabilv=horahabilv*a;
total=sumahorahabilv+sumahorahabil;
document.getElementById('diasnomb').value=i;
document.getElementById('horasnomb').value=total;
}
Trate de validar si el inicio de la fecha es un dia de lunes a jueves su contador inicie en 0 o 1 y el valor de las horas para ese dia en 9 o 0 igual para el viernes, estaaaray es una funcion con los dias de feriado.