Inicio Apuntes FPApuntes DAW Ejercicio Básico 18 PHP: Calculadora de edad
php logo

Ejercicio Básico 18 PHP: Calculadora de edad

por entreunosyceros
Publicado el: Última actualización:

En el ejercicio que voy a publicar hoy, voy a crear una aplicación que será una calculadora. En ella vamos a introducir tu fecha de nacimiento y calcule tu edad en años, meses y días. El programa deberá dar el resultado en la que indique cuantos años, meses y días tienes. También nos dirá cuantos años tenemos, mostrará cuantos meses han pasado y cuantos días son la edad que tienes.

Como nota diré que tuve que consultar el uso de las funciones checkdate e intval, otra función con la que se puede desarrollar un programa así es strtotime. En este caso yo no la he utilizado, ya que creo que no me hizo falta para conseguir el resultado deseado.

Calculadora de edad con PHP

<?php
if (isset($_POST['Enviar'])){
    if(empty($_POST['dia']) || empty($_POST['mes']) || empty($_POST['anho'])){
        echo "Ningún campo de la fecha puede estar vacío. <a href='index.php' title='Volver'>Volver</a>";
    }else{
      //se comprueba que los valores introducidos son numeros
      if (is_numeric($_POST['dia']) &&
        is_numeric($_POST['mes']) &&
            is_numeric($_POST['anho'])) {
            //guardamos los valores dentro de sus variables correspondientes
                $dia =intval($_POST['dia']);
                $mes=intval($_POST['mes']);
                $anho=intval($_POST['anho']);
           //*****************************************    
           //con checkdate se comprueba que el formato de la fecha introducida es correcto
           if(checkdate($mes,$dia,$anho)){
                //le damos el formato que queremos a la fecha introducida
                $fecha_de_nacimiento=($dia."-".$mes."-".$anho);
                $fecha_actual = date ("d-m-Y"); //tomamos la fecha actual con formato día-mes-año
         //*****************************************
         // separamos en partes las fechas por el separador -
                $fech_naci = explode ( "-", $fecha_de_nacimiento );
                $fech_actu = explode ( "-", $fecha_actual );
         //*****************************************
                $anhos = $fech_actu[2] - $fech_naci[2]; // calculamos años
                $meses = $fech_actu[1] - $fech_naci[1]; // calculamos meses
                $dias = $fech_actu[0] - $fech_naci[0]; //calculamos los días
         
         //*****************************************
         //calculamos los totales de los meses y los días
                if ($anhos==0){
                    $mesesTotales=$meses;
                }else{
                    $mesesTotales=($anhos*12)+$meses;
                }
               
                if ($meses==0){
                    $diasTotales=$dias;
                }else{
                    $diasTotales=($mesesTotales*30)+$dias;
                }
        //*****************************************
        //si alguna de las operaciones da negativo
        //se multiplicará el valor por -1 para volverlo positivo
                $anhos < 0 ? $anhos *= -1 : $anhos = $anhos;
                $meses < 0 ? $meses *= -1 : $meses = $meses;
                $dias < 0 ? $dias *= -1 : $dias = $dias;
        //*****************************************
        //imprimimos el resultado
                echo "Tu edad es de: ".intval($anhos)." años con ".intval($meses)." meses y ".$dias." días<br>";
                echo "<hr>";
                echo "Los años totales desde ".$fecha_de_nacimiento." son; ".$anhos." años<br>";
                echo "Los meses totales desde ".$fecha_de_nacimiento." son: ".$mesesTotales." meses<br>";
                echo "Los días totales desde ".$fecha_de_nacimiento." son: ".$diasTotales." días<br>";
                echo "<hr>";
                echo "<a href='index.php' title='Volver'>Volver</a>";
               
            }else{
                echo "ERROR los datos de la fecha son incorrectos.<br>";
                echo "<a href='index.php' title='Volver'>Volver</a>";
            }
           
    }else{
        echo "ERROR, solo se pueden introducir números en todos los campos.<br>";
        echo "<a href='index.php' title='Volver'>Volver</a>";
    }
  }
}else{
 
?>    
<form action="index.php" method="post" name="form" id="form"><!--Inicio formulario-->
   
      <table align="center" border="1" >  
                       
            <tr><!--línea texto-->
                <td align="center" colspan="2" bgcolor="#f0f0f0">
                    <h2>
                       Escribe tu fecha de cumpleaños<br>
                    </h2>                    
                </td>
            </tr><!--Fin de la línea texto-->
           
            <tr><!--Línea fecha-->
                <td bgcolor="#f0f0f0">Fecha: </td>
                <td align="center">
                Día<input type="text" name="dia" size="2" maxlength="2">
                Mes<input type="text" name="mes" size="2" maxlength="2">
                Año<input type="text" name="anho" size="4" maxlength="4">
                </td>
            </tr><!--Fin de la línea fecha-->
           
            <tr><!--línea de botones-->
                <td align="center" bgcolor="#f0f0f0" colspan="2">
                  <input type="submit" value="enviar" name="Enviar" title="Enviar" />
                   || 
                  <input type="reset" value="borrar" name="borrar" title="borrar" />
                </td>
            </tr><!--Fin línea de botones-->
           
        </table><!--FIN de la tabla-->
     
    </form><!--Fin del formulario-->
    <?php
        } //cerramos el else para evitar que se imprima en el resultado en la misma
        //página que el formulario.
    ?>

 


También te puede interesar ...

Deja tu comentario

* Al utilizar este formulario, acepta que este sitio web almacene y maneje sus datos.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.