Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/10/2010, 12:47
andruxand
 
Fecha de Ingreso: marzo-2010
Ubicación: Cali
Mensajes: 203
Antigüedad: 14 años, 1 mes
Puntos: 5
Pregunta conteo de dias

HOLA TODOS, ESPERO QUE TODO ANDE BIEN. BUENO LES COMENTO UNA INQUIETUD ACERCA DE UN CONTADOR DE DIAS HABILES (NO CUENTA SABADOS NI DOMINGOS TAMPOCO DIAS DE FIESTA), ESTE CONTADOR DE DIAS HABILES LO UTILIZO PARA GENERAR LA FECHA EN LA QUE SE VENCE UN PLAZO.

LA FUNCION SE ACTIVA CUANDO EL USUARIO SELECIONA UN RADIOBUTTON DE TRES QUE EXISTEN EN UN FORMULARIO, DEPENDIENDO DEL QUE SELECCIONE ES EL PLAZO, EL PROBLEMA ES QUE SI SELECCIONO UNA OPCION QUE DA UN PLAZO DE 25 DIAS ME DA LA FECHA EN QUE VENCE, HASTA AHI TODO BIEN, SI LO DESELECCIONO DOS DIAS DESPUES Y VUELVO A SELECCIONARLO AL DIA SIGUIENTE ME SIGUE DANDO LA MISMA FECHA QUE CUANDO LO SELECCIONE POR PRIMERA VEZ, LA IDEA ES QUE ME CUENTE CUANDO ESTA SELECCIONADO, CUANDO SE DESELECCION QUE PARE Y SI SE VUELVE A SELECCIONAR PUES SIGA CONTANDO, SIN TENER EN CUENTA LOS DIAS EN QUE ESTABA DESELECCIONADO

EL CODIGO QUE TENGO ES ESTE:

Código PHP:
Ver original
  1. function habiles1($fecha, $adicion){//$fecha = fecha en que inicia el conteo, $adicion = adicion d dias para el plazo segun la opcion seleccionada por el usuario
  2.  
  3. $data=split("-",$fecha);
  4. $e= $data[1]."-".$data[2]."-".$data[0];
  5. $numero = $adicion;
  6.  $fechaInicial           = mktime(0,0,0,$data[1],$data[2],$data[0]);  
  7.  $lapso          = $numero;//  dias habiles  
  8.  $diasTrans      = 0; // dias transcurridos  
  9.  $diasHabiles    = 0;
  10.  $feriados       = array("1-1","19-4","1-5","17-5","7-6","14-6","5-7","20-7","7-8","16-8","18-10","1-11","15-11","8-12","25-12");  //dias festivos mes y año
  11.  while($diasHabiles<($lapso+1))  
  12.  {    $fecha      = $fechaInicial+($diasTrans*86400);  
  13.     $diaSemana  = getdate($fecha);  
  14.      if($diaSemana["wday"]!=0 && $diaSemana["wday"]!=6)  
  15.      {   $feriado    = $diaSemana['mday']."-".$diaSemana['mon'];  
  16.          if(!in_array($feriado,$feriados))  
  17.          {   $diasHabiles++; }  
  18.      }  
  19.       $diasTrans++;
  20.      
  21.  }
  22.  
  23.  $fechaFinal     = $fechaInicial+(($diasTrans-1)*86400);
  24.  $res = fechaLetras(date("d/m/Y",$fechaFinal));
  25.  
  26.  //detecta el numero de dias faltantes para la fecha en que vence el plazo del radicado, teniendo en cuenta la opcion que se selecciono.
  27. if(date("Y/m/d") > date("Y/m/d",$fechaFinal) ){
  28. $total = "vencido";
  29. }else{      
  30. $fecha_fin = date("j/n/Y",$fechaFinal);;
  31. $date = explode("/", $fecha_fin);
  32. $cuando = mktime(0,0,0,$date[1],$date[0],$date[2]);
  33. $hoy = time();
  34. $resta = $hoy - $cuando;
  35. $fecha = str_replace("-","",$resta);
  36. $total = floor($fecha/86400);
  37. $total+= 1;}
  38.  
  39.  return array($res, $res2, $total);
  40.     }

DE ANTEMANO AGRADEZCO SU AYUDA Y SU TIEMPO :)

Última edición por andruxand; 25/10/2010 a las 13:05