Foros del Web » Programando para Internet » PHP »

Calcular Experiencia Laboral de una persona

Estas en el tema de Calcular Experiencia Laboral de una persona en el foro de PHP en Foros del Web. Bueno Este codigo es para obtener los años meses y dias en los que una persona trabajo, por lo que se los comparto, realmente lo ...
  #1 (permalink)  
Antiguo 05/10/2014, 14:19
 
Fecha de Ingreso: octubre-2014
Mensajes: 2
Antigüedad: 9 años, 6 meses
Puntos: 0
Mensaje Calcular Experiencia Laboral de una persona

Bueno Este codigo es para obtener los años meses y dias en los que una persona trabajo, por lo que se los comparto, realmente lo saque de este foro pero no recuerdo el nombre del usuario, solamente que el codigo de el era para calcular la edad, viene siendo parecido, bueno espero a mas de alguno le sirva
saludos desde Honduras!

Código PHP:
//**********************************************
        // TRAEMOS LOS DATOS DEL OBJETO Y LO METEMOS EN UN VARIABLE
        //**********************************************

                //los objetos txtfecha1, y txtfecha2 ustedes los defines ok :D
        
$fechaInicioexplode("/"$_POST["txtFecha1"]);
        
$fechaSalidaexplode("/"$_POST["txtFecha2"]);

        
//**********************************************
        // PASAMOS LOS DATOS A VARIABLES SEPARADAS Y 
        // Y TRATAMOS LA VARIABLE CONO UN ARREGLO
        //**********************************************

        //Restamos los dias , meses y años de la siguiente manera
        
$Dias=    $fechaSalida[0] - $fechaInicio[0];
        
$Meses$fechaSalida[1] - $fechaInicio[1];
        
$Anios$fechaSalida[2] - $fechaInicio[2];

        
//**********************************************
        // ACONTINUACION SE HACEN LAS VALIDACIONES
        //**********************************************

        //Hacemos un cliclo if con los dias, esto lo hacemos pensado en 
        //los dias,meses,años negativos que nos daran al hacer las restas
        
if ($Dias 0) {
            --
$Meses;

            switch (
$fechaSalida[1]) {
                case 
1$Dias_Mes_Anterior=31; break;
                case 
2$Dias_Mes_Anterior=31; break;
                case 
3
                if (
bisiesto($fechaSalida[3])) //bisiesto es una funcion que se encuentra al final del codigo
                
{
                    
$Dias_Mes_Anterior=29; break;    
                }
                else
                {

                    
$Dias_Mes_Anterior=28; break;
                }
                case 
4$Dias_Mes_Anterior=31; break;
                case 
5$Dias_Mes_Anterior=30; break;
                case 
6$Dias_Mes_Anterior=31; break;
                case 
7$Dias_Mes_Anterior=30; break;
                case 
8$Dias_Mes_Anterior=31; break;
                case 
9$Dias_Mes_Anterior=31; break;
                case 
10$Dias_Mes_Anterior=30; break;
                case 
11$Dias_Mes_Anterior=31; break;
                case 
12$Dias_Mes_Anterior=30; break;

                
            }

            
$Dias$Dias $Dias_Mes_Anterior;

        }

        if (
$Meses <0) {
            --
$Anios;
            
$Meses$Meses 12;
        }

        echo 
"$Anios años - $Meses meses y $Dias dias";

            function 
bisiesto($Anio_Salida){
    
$bisiesto=false;
    
//probamos si el mes de febrero del año actual tiene 29 días
      
if (checkdate(2,29,$Anio_Salida))
      {
        
$bisiesto=true;
    }
    return 
$bisiesto;

  #2 (permalink)  
Antiguo 05/10/2014, 19:33
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Calcular Experiencia Laboral de una persona

algo anda mal, falta codigo
__________________
la la la
  #3 (permalink)  
Antiguo 06/10/2014, 01:31
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Calcular Experiencia Laboral de una persona

¿Y porque tan complicado?
Código PHP:
Ver original
  1. <?php
  2. $datetime1 = new DateTime('2009-10-11 18:45:12'); // Fecha inicial
  3. $datetime2 = new DateTime('now'); // Fecha actual
  4. $interval = $datetime1->diff($datetime2);
  5. echo $interval->format('%Y años - %m meses - %d dias - %H horas - %i minutos - %s segundos');
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #4 (permalink)  
Antiguo 06/10/2014, 09:25
 
Fecha de Ingreso: octubre-2014
Mensajes: 2
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Calcular Experiencia Laboral de una persona

La verdad no conocia ese comando Amigo, si ahorra mucho codigo jejje gracias, una pregunta que te quiero hacer es si con ese corto codigo que me pusiste estas validando si un año es bisiesto? y si febrero cuenta con 29 o 28 dias?
  #5 (permalink)  
Antiguo 06/10/2014, 09:58
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Calcular Experiencia Laboral de una persona

Cita:
La verdad no conocia ese comando Amigo, si ahorra mucho codigo jejje gracias, una pregunta que te quiero hacer es si con ese corto codigo que me pusiste estas validando si un año es bisiesto? y si febrero cuenta con 29 o 28 dias?
La respuesta es si, desde PHP 5.3. Pero creo que era mas fácil que lo descubrieras con una sencilla prueba.
Código PHP:
Ver original
  1. $datetime1 = new DateTime('2012-01-01'); // Fecha inicial
  2. $datetime2 = new DateTime('2013-01-01'); // Fecha actual
  3. $interval = $datetime1->diff($datetime2);
  4. echo $interval->format('%a');
2012 tuvo 366 días.

Es recomendable que con frecuencia visites el sitio oficial para que sepas como esta evolucionado el lenguaje.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #6 (permalink)  
Antiguo 06/10/2014, 10:51
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Calcular Experiencia Laboral de una persona

Cita:
si ahorra mucho codigo jejje
Inclusive si solo vas a usar el resultado 1 unica vez, puedes reducir el codigo a una unica linea:
Código PHP:
Ver original
  1. <?php
  2. echo (new DateTime('2009-10-11 18:45:12'))->diff(new DateTime('now'))->format('%Y años - %m meses - %d dias - %H horas - %i minutos - %s segundos');

No es tan claro como el anterior, pero tiene la ventaja de que php libera la memoria asociada a los objetos inmediatamente tras haber mostrado el resultado.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: calcular, experiencia, laboral, persona, variable
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 16:54.