Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/10/2012, 16:38
Avatar de eddwinpaz
eddwinpaz
 
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 17 años
Puntos: 25
Pregunta Seguir Sumando despues de pasar 1 mes a otro

Saludos y muchas gracias por leer y tomase el tiempo para leer mi duda.

Les comento:

Estoy desarrollando un modulo que retorna el costo de una habitacion segun su dia ya que este varia por temporada. El asunto es que la forma que tengo actualmente me hace tdo OK pero tiene un error. l cual es que cuenta de forma sucesiva y no hace el intervalo en cada mes. es decir ejemplo:

2012-10-29 // Este mes tiene 31 dias
2012-11-03 // Este mes tiene 30 dias.

La suma de precios seria desde el 29 hasta el 02 dando un total de 5 Noches.

Lo que tengo es lo siguiente:

Código PHP:
Ver original
  1. $fecha_desde = '2012-10-29'; // 2 = dia
  2. $fecha_hasta = '2012-11-03'; // 2 = dia
  3. $codigo_habitacion = '6K6W439MZ00';
  4.  
  5. $meses = array('31', '28', '31', '30', '31', '30', '31', '31', '30', '31', '30', '31'); // 11
  6.  
  7. $array_fd = explode('-', $fecha_desde);
  8. $dias_mes_fd = $meses[$array_fd[1] - 1];
  9.  
  10. $array_fa = explode('-', $fecha_hasta);
  11. $dias_mes_fa = $meses[$array_fd[1] - 1];
  12.  
  13. $total_dias = $tools->dateDiff($fecha_desde, $fecha_hasta) - 1;
  14.  
  15. $total = 0;
  16.  
  17. $dia_inicio = $array_fd[2]; //27
  18. $dia_fin = $array_fa[2] - 1; //29
  19.  
  20. while ($dia_inicio <= $dia_fin) {
  21.  
  22.     echo $array_fd[2] . ' == ' . $meses[$array_fd[1] - 1];
  23.  
  24.     if ($array_fd[2] == $meses[$array_fd[1] - 1]) {
  25.         $dia_fin = $dia_inicio - $total_dias;
  26.         echo $dia_fin;
  27.         $dia_inicio = 1;
  28.         echo $dia_inicio;
  29.     }
  30.  
  31.  
  32.  
  33.     /* echo $array_fd[0] . '-' . $array_fd[1] . '-' . $dia_inicio . '= ';
  34.       echo $herramientas->calcular_precio_habitacion_temporada($codigo_habitacion, $array_fd[0] . '-' . $array_fd[1] . '-' . $dia_inicio, $fecha_hasta) . '<BR>';
  35.  
  36.  
  37.       $total = $total + $herramientas->calcular_precio_habitacion_temporada($codigo_habitacion, $array_fd[0] . '-' . $array_fd[1] . '-' . $dia_inicio, $fecha_hasta);
  38.      */
  39.     echo $dia_inicio;
  40.  
  41.     $dia_inicio++;
  42. }
  43.  
  44. echo '<BR>Total Pagar: ' . $total;

El problema que tengo reside aqui:

Código PHP:
Ver original
  1. if ($array_fd[2] == $meses[$array_fd[1] - 1]) {
  2.         $dia_fin = $dia_inicio - $total_dias;
  3.         echo $dia_fin;
  4.         $dia_inicio = 1;
  5.         echo $dia_inicio;
  6.     }

Ya que no se bien la logica de cambiar el mes a 11 y seguir enimerando los dias que falten de ese mes lo cual serian 2 dias ya que del 29 al 31 solo hay 3 noches y quedando restante 2 noches desde el 1 hasta el 2 de Noviembre.

Alguien entiende lo que me refiero?

Otra cosa: Eso lo hago con la intension de pasarle ese valor de fecha a este metodo:
Código PHP:
Ver original
  1. $herramientas->calcular_precio_habitacion_temporada($codigo_habitacion,  $array_fd[0] . '-' . $array_fd[1] . '-' . $dia_inicio, $fecha_hasta);

Ya que el va a la base de datos y me busca el precio de la temporada para esa fecha especifica.

Muchas gracias por su ayuda.
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.