Foros del Web » Programando para Internet » PHP »

apoyo funcion calcular

Estas en el tema de apoyo funcion calcular en el foro de PHP en Foros del Web. Haber si me pueden ayudar para hacer una funcion que calcule las vacaciones 1 año corresponde 6 dias de vacaciones 2 8 3 10 4 ...
  #1 (permalink)  
Antiguo 21/04/2009, 16:29
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 2 meses
Puntos: 5
Sonrisa apoyo funcion calcular

Haber si me pueden ayudar para hacer una funcion que calcule las vacaciones

1 año corresponde 6 dias de vacaciones
2 8
3 10
4 12
5 14
6 14
7 14
8 14
9 14
10 15
11 16
12 17
etc

no se como implementarlo en esta funcion
quiero que me regrese los dias correspondientes

function diasvacaciones($fecha_contrata,$fecha_actual)
{
//nose ni por donde empezar

}

$dias=diasvacaciones($fecha_contrata,$fecha_actual )

me pueden echar la mano ...
  #2 (permalink)  
Antiguo 21/04/2009, 17:45
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: apoyo funcion calcular

checa esta funcion

Código PHP:
//formato de fecha dd/mm/aaaa

function vacaciones($fecha_ingreso$fecha_actual)
{
    
$fecha1=explode("/",$fecha_ingreso);
    
$fecha2=explode("/",$fecha_actual);
    
$vacaciones=0;
    if(
$fecha2[2] > $fecha1[2])
    {
        
$anios=$fecha2[2]-$fecha1[2];
        if(
number_format($fecha2[1]) >= number_format($fecha1[1]))
        {
            if(
number_format($fecha2[0]) >= number_format($fecha1[0]))
            {
                
$vacaciones=calc_vac($anios);
                return 
$vacaciones;
            }
            else
            {
                
$anios=$anios-1;
                if(
$anios>=1)
                {
                    
$vacaciones=calc_vac($anios);
                    return 
$vacaciones;
                }
                else
                {
                    return 
$vacaciones;
                }
            }
        }
        else
        {
            
$anios=$anios-1;
            if(
$anios>=1)
            {
                
$vacaciones=calc_vac($anios);
                return 
$vacaciones;
            }
            else
            {
                return 
$vacaciones;
            }
        }
    }
    else
    {
    return 
$vacaciones;
    }
}

function 
calc_vac($anios)
{
    if(
$anios<6)
    {
        
$vacaciones=(($anios-1)*2)+6;
        return 
$vacaciones;
    }
    if(
$anios>and $anios<10)
    {
        
$vacaciones=14;
        return 
$vacaciones;
    }
    if(
$anios>9)
    {
        
$vacaciones=($anios-9)+14;
        return 
$vacaciones;
    }
}

echo 
vacaciones("20/01/1986"date("d/m/Y")); 
  #3 (permalink)  
Antiguo 21/04/2009, 17:53
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 2 meses
Puntos: 5
ok la voy a checar gracias por contestar

Gracias por la funcion pero hay un rpoblema
me sale 0 dias si pongo la fecha asi
20/11/2008

la voy a checar gracias

Última edición por GatorV; 21/04/2009 a las 18:08
  #4 (permalink)  
Antiguo 21/04/2009, 18:24
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: apoyo funcion calcular

Cita:
Iniciado por LuZBinG Ver Mensaje
ok la voy a checar gracias por contestar

Gracias por la funcion pero hay un rpoblema
me sale 0 dias si pongo la fecha asi
20/11/2008

la voy a checar gracias
pues por que con esa fecha no a pasado un año en comparacion con la fecha actual

y tu pusiste que cuenta a partir del primer a año o no??

ademas es una ayuda si quieres que hago otra cosa pos modificalo

Última edición por By_George; 21/04/2009 a las 18:29
  #5 (permalink)  
Antiguo 21/04/2009, 19:11
 
Fecha de Ingreso: diciembre-2007
Mensajes: 927
Antigüedad: 16 años, 3 meses
Puntos: 12
Respuesta: apoyo funcion calcular

te recomiendo grabarlo todo en un array y luego sacarlo por que no tiene una base de suma :S
  #6 (permalink)  
Antiguo 21/04/2009, 19:42
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 17 años, 11 meses
Puntos: 33
Respuesta: apoyo funcion calcular

LuzBing:

Aver si esto te sirve ->

function vaca($fecha_contrata, $fecha_actual) {
$tiempo = $fecha_actual - $fecha_contrata;
//Aqui debes tener cuidado con los valores ya sea redondeando hacia abajo a hacia arriba
//Y obteniendo numeros enteros!!!.
//para probar siempre debes poner un echo "$tiempo";
$antiguedad = array("1", "2",.............................................. .);
$vacaciones = array("8", "10",............................................. );
$conteo = count($antiguedad);
for($w = 0; $w < $conteo; $w++) {
if($antiguedad[$w] == "$tiempo") {
$acontabilizar = $vacaciones[$w];
return $acontabilizar;
}
}
return 0;
}


Saludos
Franco
  #7 (permalink)  
Antiguo 22/04/2009, 08:06
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: apoyo funcion calcular

perdon y gracias by george
para hacerlo proporcional a los meses trabajados
ejemplo si lleva 2 meses ya es un dia de vacaciones

4 meses 2 dias de vacaciones hasta 1 año que son 6 dias

perdona mi ignorancia pero batallo mucho con est tipo de funciones
number_format,explode
  #8 (permalink)  
Antiguo 22/04/2009, 08:18
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 14 años, 11 meses
Puntos: 19
number format se lo puse para quitarle los ceros a la izquierda a los meses y dias
por que a veces da otros resultados, pero sirve para otros formatos es cuestion de que cheques esa funcion en el manual de php number_format() y explode sirve para dividir una cadena por un caracter o dato determinado explode()

Cita:
Iniciado por LuZBinG Ver Mensaje
perdon y gracias by george
para hacerlo proporcional a los meses trabajados
ejemplo si lleva 2 meses ya es un dia de vacaciones

4 meses 2 dias de vacaciones hasta 1 año que son 6 dias

perdona mi ignorancia pero batallo mucho con est tipo de funciones
number_format,explode
pero eso es solo para menos de un año o tambien si tiene 1 año y medio o 5 años y 3 mese???
es que eso no lo planteaste tu solo por año

Última edición por GatorV; 22/04/2009 a las 10:12
  #9 (permalink)  
Antiguo 22/04/2009, 08:34
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: apoyo funcion calcular

lose es verdad perdon por no saber lo que quiero
pero en si eso se me ocurrio hoy

es mas lio verdad?
  #10 (permalink)  
Antiguo 22/04/2009, 08:42
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: apoyo funcion calcular

pues la verdad un poco solo es cuestion de cuando no cumpla un año o se quede a medias para cumplir un año evaluar los meses y de acuerdo a eso sacar los dias
  #11 (permalink)  
Antiguo 22/04/2009, 09:12
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: apoyo funcion calcular

claro que si pero si tiene 1 año 6 meses le corresponden 7 dias

si en 1 año son 6 dias de vacaciones
en 2 meses es un dia de vacaciones

si en 2 años son 8 dias
en 1 año y 6 meses corresponde 7 dias

si en 3 años son 10 dias
en 2 años y medio serian 9 dias


que lio jajajaja
gracias by george
haber quien me podria ayudar....
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 14:56.