Ver Mensaje Individual
  #3 (permalink)  
Antiguo 26/04/2012, 15:32
Avatar de gjx2
gjx2
 
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 16 años, 4 meses
Puntos: 139
Respuesta: Cuantos dias de la semana existen en determinado mes, de cierta fecha

Hola BMIS,
Bueno estaba un poco vago y quise rápidamente codificar tu ejemplo.

Problema :
Dada una fecha poder determinar cuantos lunes , martes ... han pasado.


Posible solución:
Código PHP:
Ver original
  1. function count_dias($fecha = "")
  2.     {
  3.    
  4.     # Reseteo la matriz
  5.         $d = array(
  6.         'lunes'     =>  0,
  7.         'martes'    =>  0,
  8.         'miercoles' =>  0,
  9.         'jueves'    =>  0,
  10.         'viernes'   =>  0,
  11.         'sabado'    =>  0,
  12.         'domingo'   =>  0,
  13.         );
  14.        
  15.         $dias_mes  = date('t',strtotime($fecha));
  16.                            
  17.                 # Descompongo la fecha para poder tener manejo.    
  18.                 $f = explode("-",$fecha);
  19.                    
  20.                 #Realizo un for hasta el ultimo dia de tu fecha para ir contando cada dia  
  21.                 for ($i=1; $i<=$f[2]; $i++){
  22.                
  23. $day = date('N',strtotime($f[0]."-".$f[1]."-".$i));
  24.                     switch($day){
  25.                
  26.                         case 1:
  27.                            
  28.                             $d['lunes']++;
  29.                        
  30.                         break;
  31.                        
  32.                         case 2:
  33.                            
  34.                             $d['martes']++;
  35.                        
  36.                         break;
  37.                        
  38.                         case 3:
  39.                            
  40.                             $d['miercoles']++;
  41.                        
  42.                         break;     
  43.                                    
  44.                         case 4:
  45.                            
  46.                             $d['jueves']++;
  47.                        
  48.                         break;         
  49.                                
  50.                         case 5:
  51.                            
  52.                             $d['viernes']++;
  53.                        
  54.                         break;                 
  55.  
  56.                         case 6:
  57.                            
  58.                             $d['sabado']++;
  59.                        
  60.                         break; 
  61.                        
  62.                         case 7:
  63.                            
  64.                             $d['domingo']++;
  65.                        
  66.                         break; 
  67.                        
  68.                         default:
  69.                                 exit();
  70.                         break;
  71.                        
  72.                     }          
  73.                                                
  74.                         }
  75.                
  76.                 return $d;         
  77.     }
  78.  
  79. $resultado = count_dias('2012-04-27');
  80.  
  81. extract($resultado);
  82.  
  83.  
  84. /*
  85. Creo una tabla para que lo veas un poco mas claro
  86. */
  87. $table  = "<table border=1>";
  88. $table .= "<tr>";
  89. $table .= "<th>Lunes</th><th>Martes</th><th>Miercoles</th><th>Jueves</th><th>Viernes</th><th>Sabado</th><th>Domingo</th>";
  90. $table .= "</tr>";
  91. $table .= "<tr>";
  92. $table .= "<td>".$lunes."</td><td>".$martes."</td><td>".$miercoles."</td><td>".$jueves."</td><td>".$viernes."</td><td>".$sabado."</td><td>".$domingo."</td>";
  93. $table .= "</tr>";
  94. $table .= "</table>";
  95.  
  96. echo $table;

Nota: Utilice el formato de fecha de mysql 0000-00-00

Funciones que utilice :
extract
date
strtotime

Saludos.