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.