• Publicidad

Calcular años entre dos fechas, en un JSON

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Calcular años entre dos fechas, en un JSON

Notapor jimr1984 » 2017-12-20 13:21 @598

Hola de nuevo, amigo. Tengo este JSON:

{"Data":{"Id":9923202,"Nombre":"PEPEGUME","CI":{"Codigo":"4682329AS","IdCiudadExpedicion":"01"},"IdSexo":"M","Telefono":"43444821","Celular":"234821","Email":"[email protected]","FechaNacimiento":"16/02/1984 0:00:00","IdPaisNacimiento":"CO","IdCiudadNacimiento":"01","IdEstadoCivil":"C","Hijos":0,"KeyEstadoAfiliacion":"P"},"Errors":[],"Messages":[],"HasErrors":false,"HasMessages":false}

y necesito saber cuántos años tiene esa persona, actualmente.

fecha actual: 2017 - 12 - 20 ; 20 de dic de 2017

y la fecha de nacimiento de PEPEGUME es: 16/02/1984 0:00:00

¿Cómo puedo saber cuántos años tiene actualmente, por favor? "Almacenar en una variable los años". Esto para luego manipular este valor.
jimr1984
Perlero nuevo
Perlero nuevo
 
Mensajes: 123
Registrado: 2012-11-25 07:11 @341

Publicidad

Re: Calcular años entre dos fechas, en un JSON

Notapor explorer » 2017-12-20 14:50 @660

Pero, ¿años enteros o no?

Por ejemplo, si un usuario tiene 19 años, 11 meses y 29 días, ¿decimos que tiene 19 años?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Calcular años entre dos fechas, en un JSON

Notapor jimr1984 » 2017-12-20 16:18 @721

Sí, años enteros. Si nació en 1984 y la fecha actual es 2017 tendrá 33 años.
jimr1984
Perlero nuevo
Perlero nuevo
 
Mensajes: 123
Registrado: 2012-11-25 07:11 @341

Re: Calcular años entre dos fechas, en un JSON

Notapor explorer » 2017-12-21 11:23 @516

Pues entonces es muy sencillo, ¿no?

Solo tienes que sacar la información del json con el módulo JSON, extraer el dato del año, por ejemplo con una expresión regular así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
/(\d{4} /
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
(Sí, hay un espacio en blanco después del paréntesis de captura).

Y el número del año actual lo sacas con una llamada a la función localtime():

perl -E 'say 1900+(localtime)[5]'

Y una resta entre los dos números, y listo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Avanzado

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados