Foros del Web » Programando para Internet » PHP »

conteo de dias

Estas en el tema de conteo de dias en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 25/10/2010, 12:47
 
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
  #2 (permalink)  
Antiguo 25/10/2010, 18:47
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: conteo de dias

La consulta es medio complicada de leer. Podrías escribir la logica item por item, y sin mayusculas?



°º¤øº¤ø nada ø„¸¸„ø¤º°¨ nada. „ø¤º°¨ ¨°º¤øº¤ø estaba „¸¸„ø¤º°¨¨°º¤øº¤ø nada ø„¸¸„ø¤º°¨ nada ¸„ø¤º°¨¨°º¤ø nada º¤ø„¸¸„ø¤º° nada °º¤øº¤ø para ø„¸¸„ø¤º°¨ nada. ¸„ø¤º°¨ ¨°º¤øº¤ø Aunque „¸¸„ø¤º°¨¨°º¤øº¤ø si ø„ ...¸¸„ø¤º°¨quisieras ¸„ø¤º°¨¨°º¤ø nada º¤ø„¸¸„ø¤º° nada °º¤øº¤ø nada ø„¸¸„ø¤º°¨ a „ø¤º°¨ nada. ¨°º¤øº¤ø vos „¸¸„ø¤º°¨¨°º¤øº¤ø dirias ø„¸¸„ø¤º°¨ . nada ¸„ø¤º°¨¨°º¤ø con º¤ø„¸¸„ø¤º° nada °º¤øº¤ø hay mas ø„¸¸„ø¤º°¨ que ¸„ø¤º°¨ ¨°º¤øº¤ø nada „¸¸„ø¤º°¨¨°º¤øº¤ø y ø„ ...¸¸„ø¤º°¨todo va ¸„ø¤º°¨¨°º¤ø como va º¤ø„¸¸„ø¤º°
  #3 (permalink)  
Antiguo 25/10/2010, 19:07
 
Fecha de Ingreso: marzo-2010
Ubicación: Cali
Mensajes: 203
Antigüedad: 14 años, 1 mes
Puntos: 5
Respuesta: conteo de dias

hola mayi gracias por responder. Mira que pena me explico mejor, existe un formulario en el sistema que se llena con informacion de usuarios o clientes bien dicho, los cliente deben completar cierta documentacion y despues de haber sido ingresado sus datos en el formulario del sistema por defecto se activa una alerta que cuenta 30 dias habiles justo despues de guardar la informacion del cliente en el sistema, es decir, el cliente tiene 30 dias habiles para completar la documentacion requerida.

Al cumplirse los 30 dias habiles existen casos especiales en donde se le da un plazo extra al cliente, uno le da 30 habiles mas y otro 15 dias hablies, en este caso para seleccionar el plazo extra use dos radiobuttons uno para 30 y otro para 15 dias habiles. estos los envio a la funcion de arriba para que haga el conteo de los habiles, el cual me lanza inmediatamente la fecha en que vence, el problema es que si se deselecciona hoy y pasado mañana lo vuelvo a seleccionar me sigue dando la misma fecha de principio es decir me suma los dias que no estaba seleccionado y no me sirve asi, si mañana lo deselecciono que pare de contar y si pasado mañana lo vuelvo a selecionar que vuelva a contar.

espero haberme explicado bien de antemano gracias po tu tiempo
  #4 (permalink)  
Antiguo 26/10/2010, 09:20
 
Fecha de Ingreso: marzo-2010
Ubicación: Cali
Mensajes: 203
Antigüedad: 14 años, 1 mes
Puntos: 5
Respuesta: conteo de dias

hola chicos de foro, esperando que esten bien, de verdad mi mas sinceras disculpas por el post seguido, lamentablemente necesito una ayuda urgente con el problema que plantee desde el principio que es un contador de dias habiles que se pueda detener y en su debido caso segur contando depndiendo del usuario como ven ya tengo el codigo de un contador de dias habiles pero este no se puede detener, les pido por favor me guien en esto ya que es muy urgente :(, igualmente de antemano les agradezco mucho su tiempo y en lo que me puedan ayudar.

Etiquetas: dias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:17.