Foros del Web » Programando para Internet » PHP »

contador semanas del año!!

Estas en el tema de contador semanas del año!! en el foro de PHP en Foros del Web. hola de nuevo a todos, aver si podeis ayudarme, necesito saber como contar cuantas semanas tiene un año, para implementarlas en un calendario, mi principal ...
  #1 (permalink)  
Antiguo 18/05/2006, 14:00
 
Fecha de Ingreso: mayo-2006
Mensajes: 99
Antigüedad: 18 años, 6 meses
Puntos: 0
contador semanas del año!!

hola de nuevo a todos, aver si podeis ayudarme, necesito saber como contar cuantas semanas tiene un año, para implementarlas en un calendario, mi principal problema viene cuando una semana comienza en un mes y acaba en otro mes distinto y lo mismo con los años, si alguien puede ayudarme le estare muy agradecido!!
  #2 (permalink)  
Antiguo 18/05/2006, 14:06
Avatar de turco_7  
Fecha de Ingreso: diciembre-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.044
Antigüedad: 20 años, 11 meses
Puntos: 19
fijate que con la funcion date(W); te dice el numero de la semana en la que estas ...
si lo combinas con el mktime, podes saber cuales son las semanas siguiente y las anteriores .. saludos...

ref1. http://ar2.php.net/manual/es/function.date.php
ref2. http://ar2.php.net/manual/es/function.mktime.php
__________________
Mi Blog http://turco7.blogspot.com
Usuario Linux : 404289
Mi última página: http://www.digitalservicecba.com.ar - Reparacion de camaras digitales!
  #3 (permalink)  
Antiguo 19/05/2006, 01:37
 
Fecha de Ingreso: mayo-2006
Mensajes: 99
Antigüedad: 18 años, 6 meses
Puntos: 0
Gracias turco, ya se ke semana es la del dia actual y ya en teoria podria seguir pero me pareceria mas bonito que apareciera en mi calendario el numero de la semana al lado de cada semana. Este es mi calendario y tiene modificado varias cosas, como ke los findes no deje insertar nada, y ya lo ultimo que he hecho es que solo los viernes me deje entrar para que cada empleado inserte sus horas, hay va mi codigo, y aver si me puedes exar una mano y vemos donde insertamos los comandos para poner el numero de semanas.

Código PHP:
function calcula_numero_dia_semana($dia,$mes,$ano){
    
$numerodiasemana date('w'mktime(0,0,0,$mes,$dia,$ano));
    
    if (
$numerodiasemana == 0
        
$numerodiasemana 6;
    else
        
$numerodiasemana--;
    return 
$numerodiasemana;
}

//funcion que devuelve el último día de un mes y año dados
function ultimoDia($mes,$ano){ 
    
$ultimo_dia=28
    while (
checkdate($mes,$ultimo_dia 1,$ano)){ 
       
$ultimo_dia++; 
    } 
    return 
$ultimo_dia



function 
dame_nombre_mes($mes){
     switch (
$mes){
         case 
1:
            
$nombre_mes="Enero";
            break;
         case 
2:
            
$nombre_mes="Febrero";
            break;
         case 
3:
            
$nombre_mes="Marzo";
            break;
         case 
4:
            
$nombre_mes="Abril";
            break;
         case 
5:
            
$nombre_mes="Mayo";
            break;
         case 
6:
            
$nombre_mes="Junio";
            break;
         case 
7:
            
$nombre_mes="Julio";
            break;
         case 
8:
            
$nombre_mes="Agosto";
            break;
         case 
9:
            
$nombre_mes="Septiembre";
            break;
         case 
10:
            
$nombre_mes="Octubre";
            break;
         case 
11:
            
$nombre_mes="Noviembre";
            break;
         case 
12:
            
$nombre_mes="Diciembre";
            break;
    }
    return 
$nombre_mes;
}

function 
mostrar_calendario($dia,$mes,$ano){
$mes_hoy=date("m");
$ano_hoy=date("Y");
$numerosemanadate('W');

if ((
$mes_hoy <> $mes) || ($ano_hoy <> $ano))
{
    
$hoy=0;
}
else
{
    
$hoy=date("d");
}
    
//tomo el nombre del mes que hay que imprimir
    
$nombre_mes dame_nombre_mes($mes);
    
    
//construyo la cabecera de la tabla
    
echo "<table width=200 cellspacing=3 cellpadding=2 border=0><tr><td colspan=7 align=center class=tit>";
    echo 
"<table width=100% cellspacing=2 cellpadding=2 border=0><tr><td style=font-size:10pt;font-weight:bold;color:white>";
    
//calculo el mes y ano del mes anterior
    
$mes_anterior $mes 1;
    
$ano_anterior $ano;
    if (
$mes_anterior==0){
        
$ano_anterior--;
        
$mes_anterior=12;
    }
    echo 
"<a style=color:white;text-decoration:none href=cal.php?dia=1&nuevo_mes=$mes_anterior&nuevo_ano=$ano_anterior>&lt;&lt;</a></td>";
       echo 
"<td align=center class=tit>$nombre_mes $ano</td>";
       echo 
"<td align=right style=font-size:10pt;font-weight:bold;color:white>";
    
//calculo el mes y ano del mes siguiente
    
$mes_siguiente $mes 1;
    
$ano_siguiente $ano;
    if (
$mes_siguiente==13){
        
$ano_siguiente++;
        
$mes_siguiente=1;
    }
    echo 
"<a style=color:white;text-decoration:none href=cal.php?dia=1&nuevo_mes=$mes_siguiente&nuevo_ano=$ano_siguiente>&gt;&gt;</a></td></tr></table></td></tr>";
    echo 
'    <tr>
                <td width=14% align=center class=altn><font size=3>Nº Semana</td>
                <td width=14% align=center class=altn><font size=3>Lunes</td>
                <td width=14% align=center class=altn><font size=3>Martes</td>
                <td width=14% align=center class=altn><font size=3>Miercoles</td>
                <td width=14% align=center class=altn><font size=3>Jueves</td>
                <td width=14% align=center class=altn><font size=3>Viernes</td>
                <td width=14% align=center class=altn><font color="red" size=3><b>Sabado</b></td>
                <td width=14% align=center class=altn><font color="red" size=3><b>Domingo</b></td>
            </tr>'
;
    
    
//Variable para llevar la cuenta del dia actual
    
$dia_actual 1;
    
    
//calculo el numero del dia de la semana del primer dia
    
$numero_dia calcula_numero_dia_semana(1,$mes,$ano);
    
//echo "Numero del dia de demana del primer: $numero_dia <br>";
    
    //calculo el último dia del mes
    
$ultimo_dia ultimoDia($mes,$ano);
    
//escribo la primera fila de la semana
    
$finde='No laborable';
    
    echo 
"<tr>";
    echo 
"<td>",$numerosemana,"</td>";
    for (
$i=0;$i<7;$i++)
    {
        
        if (
$i $numero_dia)
        {
            
//si el dia de la semana i es menor que el numero del primer dia de la semana no pongo nada en la celda
            
echo "<td></td>";
        } 
        else
        {    
            
            if ((
$i == 0) || ($i == 1) || ($i == 2) || ($i == 3) || ($i == 5) || ($i == 6))
            {
                
            
/*    if($i==1)
                {
                    $sem++;
                    echo $sem;
                }*/
                
if ($dia_actual == $hoy)
                {
            
                    
//echo "<td class=da><a href=../php/cdia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
                    
echo "<td class=da><a href=cal.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano&finde='sabado'>$dia_actual</a></td>";
                }
                else
                {
            
                    echo 
"<td class=fs><a href=cal.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano&finde='sabado'>$dia_actual</a></td>";
                }
            }
            else
            {            
                if (
$dia_actual == $hoy)
                {
                    
                    echo 
"<td class=da><a href=../php/cdia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
                }
                else
                {
                    
                    echo 
"<td align=center><a href=../php/cdia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
                }
            }
            
$dia_actual++;
        }
    }
    echo 
"</tr>";
    
    
//recorro todos los demás días hasta el final del mes
    
$numero_dia 0;
    while (
$dia_actual <= $ultimo_dia){
        
//si estamos a principio de la semana escribo el <TR>
        
if ($numero_dia == 0)
        {
            echo 
"<tr>";
            echo 
"<td>",$numerosemana,"</td>";
        
//si es el ultimo de la semana, me pongo al principio de la semana y escribo el </tr>
        
            
if (($numero_dia == 0) || ($numero_dia == 1) || ($numero_dia == 2) || ($numero_dia == 3) || ($numero_dia == 5) || ($numero_dia == 6))
            {
                
/*if($numero_dia==1)
                {
                    $sem++;
                    echo $sem;
                }*/
                
                
if ($dia_actual == $hoy)
                {
                    echo 
"<td class=da><a href=cal.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano&finde='sabado'>$dia_actual</a></td>";
                    
//echo "<td class=da><a href=../php/cdia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
                
}
                else
                {
                    echo 
"<td class=fs><a href=cal.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano&finde='sabado'>$dia_actual</a></td>";
                    
                }
            }
            else
            {        
                if (
$dia_actual == $hoy)
                {
//                    
                    
echo "<td class=da><a href=../php/cdia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
                }
                else
                {
                    echo 
"<td align=center><a href=../php/cdia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
                }
            }

            
$dia_actual++;
            
$numero_dia++;
            if (
$numero_dia == 7)
            {
                
$numero_dia 0;
                echo 
"</tr>";
            }
        }
    }
    
    
//compruebo que celdas me faltan por escribir vacias de la última semana del mes
    
for ($i=$numero_dia;$i<7;$i++)
    {
        echo 
"<td></td>";
    }
    
    echo 
"</tr>";
    echo 
"</table>";

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:17.