Ver Mensaje Individual
  #6 (permalink)  
Antiguo 19/03/2015, 03:21
melapillouncamion
 
Fecha de Ingreso: marzo-2015
Mensajes: 9
Antigüedad: 9 años, 1 mes
Puntos: 2
Respuesta: Calculo edad actuarial en PHP

solucionado:

Tenemos que pasarle la fecha de nacimiento en formato de texto, para que nos conserve el 0 delante del número del mes, por ejemplo 2015-03-01 si estos datos los pasamos como número al acumularlos individualmente, nos elimina el cero pero si los pasamos como letra, nos conserva el "01" y el "03" de forma que al concatenarlos en la función quedaria "0301", si no nos quedaría "31"

Código PHP:
Ver original
  1. //CALCULA LA EDAD ACTUARIAL.
  2. function CalculaEdad( $fecha ) {
  3.         list($Y,$m,$d) = explode("-",$fecha);
  4.         $ma=date("m");
  5.         if($ma>$m) {
  6.             $temp=($ma)-$m;//."meses *opcion1*";
  7.             if($temp>6){
  8.                 //echo "<br/>año mas uno<br/>";
  9.                 $mesresta=1;
  10.             }
  11.         }
  12.         if($ma<$m) {
  13.             $temp=(12-$m)+$ma;//."meses *opcion2*";
  14.             if($temp>=6){
  15.                 //echo "<br/>año mas uno<br/>";
  16.                 $mesresta=1;
  17.             }
  18.         }
  19.         if($ma==$m) {
  20.             if($d>date("d")){
  21.                 //echo "<br/>año mas uno por dias<br/>";
  22.                 $mesresta=1;
  23.             }
  24.             //echo "<br/>no se suma porque ya los ha cumplido este mes<br/>";
  25.         }
  26.         if(($ma.date("d")) < ($m.$d)){
  27.             $Anoactuales= date("Y")-$Y-1;
  28.         }else{
  29.             $Anoactuales= date("Y")-$Y;
  30.         }
  31.         return($Anoactuales+$mesresta);
  32.     }

Calcula la edad exacta, con un margen de error de menos de 24 horas y calcula si hace mas de 6 meses que cumpliste los años, te pone 1 año mas. (es lo que requieren las contrataciones de seguros.)