
Diego Cesar Lerma Torres
Preguntaintenté hacer mi programa para calcular la diferencia de días desde mi nacimiento hasta la fecha más dinámico tomando el dato de la fecha de nacimiento desde un objeto de la clase Persona y así poder calcular este dato automáticamente de un gran número de personas:
function Persona(nombre, apellido, fecha_nacimiento){ this.nombre=nombre this.apellido=apellido this.fecha_nacimiento=fecha_nacimiento //... var diego= new Persona('Diego', 'Lerma', new Date(1998,10,25)) }
el problema es que al tomar la variable de esta forma, el tipo de variable se vuelve ‘any’ y al hacer la resta, la diferencia resulta en NaN:

Diego Cesar Lerma Torres
Muchas gracias por su apoyo!
La parte donde hago el cálculo es la siguiente:
function diasEntreFechas(fecha_hoy, persona){ const unDia=1000*60*60*24 const diferencia=Math.abs(fecha_hoy-persona.nacimiento) // console.log(diferencia) Puse esta linea para el debugging return Math.floor(diferencia/unDia)
Ya intenté tomar la variable en una constante dentro de la función, descomponer el objeto y varias cosas, pero creo que es un problema lógico, porque algo de lo que no me había dado cuenta antes de que todos atributos de los objetos que manejamos en JS con de tipo 'any'
Les muestro el código completo:
const hoy=new Date() // const diego_nacimiento=new Date(1998,10,25) function Persona(nombre, apellido, fecha_nacimiento){ this.nombre=nombre this.apellido=apellido this.fecha_nacimiento=fecha_nacimiento } function diasEntreFechas(fecha_hoy, persona){ const unDia=1000*60*60*24 const diferencia=Math.abs(fecha_hoy-persona.nacimiento) // console.log(diferencia) Puse esta linea para el debugging return Math.floor(diferencia/unDia) } function imprimirFecha(persona){ console.log(`${persona.nombre} ${persona.apellido}, Usted ha vivido ${diasEntreFechas(hoy, persona.nacimiento)} dias desde el dia:\n${persona.nacimiento} hasta:\n ${hoy}`) console.log(`El equivalente a ${(diasEntreFechas(hoy, persona.nacimiento)/365)} años`) } var diego= new Persona('Diego', 'Lerma', new Date(1998,10,25)) imprimirFecha(diego)
Miguel Torres
Hola, @diego-lerma. :D
¿En qué parte de tu código estás haciendo el cálculo? ¿Podrís mostrarlo por favor?