Ver Mensaje Individual
  #5 (permalink)  
Antiguo 21/06/2011, 04:10
Avatar de fbedia88
fbedia88
 
Fecha de Ingreso: enero-2011
Ubicación: Santander
Mensajes: 83
Antigüedad: 13 años, 4 meses
Puntos: 20
Respuesta: recorrer dias del año

Bueno, ya conseguí hacerlo!!!

Les posteo la solución:

Código PHP:
<?php
/*
-------------------------------------------------------------------------------------
|                                                                                    |
|    Este codigo printa las fechas del año 2011 de un determinado dia por ejemplo    |
|    lunes (1), martes (2), viernes (5), sabado (6)...etc.                            |
|                                                            thanks (forosdelweb)    |
-------------------------------------------------------------------------------------
*/

$dia_semana 2//establece un dia: lunes=1, martes=2, miercoles=3 .... etc

// Esta funcion devuelve el dia de la semana
function calcula_numero_dia_semana($dia,$mes,$ano){ 
    
$numerodiasemana date('w'mktime(0,0,0,$mes,$dia,$ano)); 
    if (
$numerodiasemana == 0)
    {
        
$numerodiasemana 7;
    }
    return 
$numerodiasemana
}  


$mes 1//para comenzar a printar desde enero...
$ano 2011;

$dias_mes_2011 = array(1,31,28,31,30,31,30,31,31,30,31,30,31); //en la posicion 1 del array puede ir cualquier numero ya que no se usa dicha posicion.

//asigno al dia, el numero correspondiente con el calendario del año 2011 del dia de la semana dado.
switch ($dia_semana) {
    case 
'1':
        
$dia='3';
        break;
    case 
'2':
        
$dia='4';
        break;
    case 
'3':
        
$dia='5';
        break;
    case 
'4':
        
$dia='6';
        break;
    case 
'5':
        
$dia='7';
        break;
    case 
'6':
        
$dia='1';
        break;
    case 
'7':
        
$dia='2';
        break;
}

//mientras que el mes es igual a 12...
while ($mes <= 12)
{
    
//mientras que el dia no pase de los del mes... voy sumando 7
    
while ($dia <= $dias_mes_2011[$mes])
    {
        echo 
"$dia-$mes-$ano <br>";
        
$dia $dia 7;
    }
    
//si el dia a superado a los dias del mes, calculo el dia del mes siguiente con una simple resta...
    
if ($dia $dias_mes_2011[$mes])
    {
        
$diferencia $dia $dias_mes_2011[$mes];
        
$dia $diferencia;
    }
    
    echo 
"<br>";
    
$mes $mes +1;
}

?>
En este caso, la variable $dia_semana es igual a 2, por lo tanto muestra todos los martes del año.

Este codigo muestra en pantalla lo siguiente:

Código:
4-1-2011 
11-1-2011 
18-1-2011 
25-1-2011 

1-2-2011 
8-2-2011 
15-2-2011 
22-2-2011 

1-3-2011 
8-3-2011 
15-3-2011 
22-3-2011 
29-3-2011 

5-4-2011 
12-4-2011 
19-4-2011 
26-4-2011 

3-5-2011 
10-5-2011 
17-5-2011 
24-5-2011 
31-5-2011 

7-6-2011 
14-6-2011 
21-6-2011 
28-6-2011 

5-7-2011 
12-7-2011 
19-7-2011 
26-7-2011 

2-8-2011 
9-8-2011 
16-8-2011 
23-8-2011 
30-8-2011 

6-9-2011 
13-9-2011 
20-9-2011 
27-9-2011 

4-10-2011 
11-10-2011 
18-10-2011 
25-10-2011 

1-11-2011 
8-11-2011 
15-11-2011 
22-11-2011 
29-11-2011 

6-12-2011 
13-12-2011 
20-12-2011 
27-12-2011

Bueno, espero que si alguien se ve en mi misma situacion esto le sirva de ayuda!!

He comentado un poco el code para que lo entiendan mejor....

Cualquier cosa me dicen por aca!!

Un saludo y gracias forosdelweb.