Ver Mensaje Individual
  #6 (permalink)  
Antiguo 01/10/2009, 05:18
Avatar de Tokkara
Tokkara
 
Fecha de Ingreso: junio-2008
Mensajes: 131
Antigüedad: 16 años, 10 meses
Puntos: 5
Respuesta: Problema con fechas

Creo que así es más facil

Código PHP:
$fechaCurso '12-03-2009'//fecha de inicio del curso
$diasCurso = array('2','4'); //Martes y Jueves
$hoy '16-06-2009'//fecha ficticia de hoy

echo calculaDiasCursos($hoy,$fechaCurso,$diasCurso);


function 
calculaDiasCursos($hoy,$fechaCurso,$diasCurso)
{

  
//Pasamos las fechas a timestamp de Unix.
  
$hoy explode('-'$hoy);
  
$fecha explode('-'$fechaCurso);
  
$hoy mktime(000$hoy[1], $hoy[0], $hoy[2]);
  
$fecha mktime(000$fecha[1], $fecha[0], $fecha[2]);

  
//Extraemos las semanas completas que hay entre las 2 fechas
  
$diff $hoy-$fecha;
  
$dias_de_diferencia floor($diff/(24*3600));
  
$semanas_de_diferencia floor($dias_de_diferencia/7);


  
//Contamos los días de cursos en esas semanas completas
  
$dias $semanas_de_direfrencia *sizeof($diasCurso);

  
//Ahora contamos la semana incompleta
  
$diasSemana =  $dias_de_diferencia%7;
  
if($diasSemana 0)
  {

    foreach(
$diasCurso as $d)
    {
      
//si el actual es mayor que el día del curso sumamos uno, sino los dias del curso son mayores que el dia actual. Salimos del bucle
      
if($diasSemanas $d$dias++;
      else break;
    }
  }

  return 
$dias;

Lo unico que hacemos es contar las semanas que hay entre las 2 fechas. y multiplicarlo por los días de curso que hay a la semana. Luego cogemos la última semana incompleta, si existe, y vamos contando día a día.
__________________
Revolucionario controlador de plantillas para php
www.simphple.com