Comunidad de diseño web y desarrollo en internet online

Calculo edad Actuarial en PHP

Citar            
MensajeEscrito el 17 Mar 2015 01:20 pm
Hola, estoy programando una aplicación web en php para la contratación de un seguro y el cálculo de edad lo hago asi:
[-- --]
function CalculaEdad( $fecha ) {
list($Y,$m,$d) = explode("-",$fecha);
return( date("md") < $m.$d ? date("Y")-$Y-1 : date("Y")-$Y );
}
[-- --]
Eso funciona perfectamente y me devuelve la edad real actual, ahora viene mi problema, me han pedido que en vez de calcular la edad actual real de la persona, he de calcular la edad actuarial.
:wtf:
Explicación:
El calculo de la edad actuarial es que cuando tu tienes 30 años, 6 meses y 1 día, para el seguro, tienes 31.

Ejemplo:
Fecha actual: 01-09-2015
Fecha de nacimiento:01-02-2000

Esta persona a día 01-09-2015, tendía 15 años, pero como hace mas de 6 meses y 1 día que los cumplió, el seguro contempla la edad como 26 años.

PREGUNTA:
Alguien podría ayudarme para hacer una función como la que tengo, pero que me devuelva la edad actuarial ???????????????
Le estoy dando vueltas y no lo saco... :shock:

Por melapillouncamion

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 18 Mar 2015 12:04 pm
¿Cuál es la lógica que hace que se salte de 15 a 26 años? :o.

Si consigues que alguien te explique cuál es esa lógica, entonces estarás en condiciones de desarrollar la función que quieres. Porque con adivinanzas no se programa.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 18 Mar 2015 12:56 pm
perdon confusion mía... el 26 es un 16

la lógica es que si hace mas de 6 meses y 1 dia que cumpliste años, para la aseguradora ya tienes un año mas.
Yo calculo la edad así:
function CalculaEdad( $fecha ) {
list($Y,$m,$d) = explode("-",$fecha);
return( date("md") < $m.$d ? date("Y")-$Y-1 : date("Y")-$Y );
}
y me la calcula perfecta, sin error de 1 día siquiera, pero necesito calcular si la edad actual, la alcanzó hace mas de 6 meses y 1 día porque entonces para la aseguradora seria como si tuviera 1 año mas

Por melapillouncamion

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 19 Mar 2015 12:04 pm
Réstale 6 al mes de nacimiento de la persona. Porque por lo que me dices, es como si la persona hubiese nacido 6 meses antes de su verdadero nacimiento.

Calcula la edad con la nueva fecha.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 15 Jun 2015 09:46 pm
La definición de edad actuarial no es esa que mencionas sino la edad del cumpleaños más próximo. Prueba con construir segmentos desde la fecha de efecto al cumpleaños anterior y al siguiente y luego compara esas distancias.
Mira su resultado aquí:
https://www.miotroseguro.com/seguro/c%C3%A1lculo-actuarial/159

Saludos

Por Alberto vazquez

0 de clabLevel



 

safari

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.