Fecha y hora actual: Jueves 22 Ago 2019 13:13
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

calculo del mes con la fecha de nacimiento

Responder al Tema

Índice del Foro > JavaScript > calculo del mes con la fecha de nacimiento

Autor Mensaje
zendit
Usuario Iniciado


Registrado: 12 Nov 2014
Mensajes: 24

Mensaje Publicado: Miércoles 12 Nov 2014 13:48

Título del mensaje: calculo del mes con la fecha de nacimiento

Responder citando

En esta funcion solo se calcula la edad a partir de la fecha de nacimiento y arroja los años de edad, pero necesito que calcule mes; es decir que calcule los meses de edad de un recien nacido.
Ejemplo, Fecha Actual: 11/11/2014 Fecha de nacimiento: 02/08/2014

En negrita aparece la rutina que le agregué para calcular la edad cuando es un recien nacido.
pero arroja este error: Tiene 0 años

a ver quien pudiera dar una idea mas.

function validate_fecha(fecha)
{
//var patron=new RegExp("^(19|20)+([0-9]{2})([/-])([0-9]{1,2})([-])([0-9]{1,2})$");
var patron=new RegExp("^([0-9]{1,2})([/])([0-9]{1,2})([/])(19|20)+([0-9]{2})$");
// alert(fecha+"hola2");
// alert(patron);
if(fecha.search(patron)==0)
{ //alert("hola3");
var values=fecha.split("/");
if(isValidDate(values[0],values[1],values[2]))
{//alert("hola4");
return true;
}
}
//alert("hola5");
return false;
}

function isValidDate(day,month,year)
{
var dteDate;

// En javascript, el mes empieza en la posicion 0 y termina en la 11
// siendo 0 el mes de enero
// Por esta razon, tenemos que restar 1 al mes
month=month-1;
// Establecemos un objeto Data con los valore recibidos
// Los parametros son: año, mes, dia, hora, minuto y segundos
// getDate(); devuelve el dia como un entero entre 1 y 31
// getDay(); devuelve un num del 0 al 6 indicando siel dia es lunes,
// martes, miercoles ...
// getHours(); Devuelve la hora
// getMinutes(); Devuelve los minutos
// getMonth(); devuelve el mes como un numero de 0 a 11
// getTime(); Devuelve el tiempo transcurrido en milisegundos desde el 1
// de enero de 1970 hasta el momento definido en el objeto date
// setTime(); Establece una fecha pasandole en milisegundos el valor de esta.
// getYear(); devuelve el año
// getFullYear(); devuelve el año
dteDate=new Date(year,month,day);
//alert(((day==dteDate.getDate()) && (month==dteDate.getMonth()) && (year==dteDate.getFullYear())));
//Devuelva true o false...
return ((day==dteDate.getDate()) && (month==dteDate.getMonth()) && (year==dteDate.getFullYear()));
}


function calcularEdad()
{
var fecha=document.getElementById("user_date").value;
//la fecha que entra el usuario
var values=fecha.split("/");
var dia = values[0];
var mes = values[1];
var ano = values[2];
fecha= dia+"/"+mes +"/"+ano;

if(validate_fecha(fecha)==true)
{
// Si la fecha es correcta, calculamos la edad
var values=fecha.split("/");

var dia = values[0];
var mes = values[1];
var ano = values[2];
// cogemos los valores actuales
var fecha_hoy = new Date();
var ahora_ano = fecha_hoy.getYear();
var ahora_mes = fecha_hoy.getMonth();
var ahora_dia = fecha_hoy.getDate();

// realizamos el calculo
var edad = (ahora_ano + 1900) - ano;
var mes = (ahora_mes - mes);

if ( ahora_ano == ano)
{
mes++;
}
document.getElementById("result").innerHTML="Tiene "+mes+" meses";



if ( ahora_mes < (mes - 1))
{
edad--;
}
if (((mes - 1) == ahora_mes) && (ahora_dia < dia))
{
edad--;
}
if (edad > 1900)
{
edad -= 1900;
}


document.getElementById("result").innerHTML="Tiene "+edad+" años";
}
else
{
document.getElementById("result").innerHTML="La fecha "+fecha+" es incorrecta";
}
}
Ordenador Triste

Volver arriba
Ver perfil del usuario Enviar mensaje privado
unsigned char*
Usuario Activo


Registrado: 03 Abr 2012
Mensajes: 599
Ubicación: Aqui

Mensaje Publicado: Miércoles 12 Nov 2014 16:25

Título del mensaje: calculo del mes con la fecha de nacimiento

Responder citando

¿Como que error? xDDD

Fecha Actual: 11/11/2014 Fecha de nacimiento: 02/08/2014

Han pasado 0 años... está correcto.


Otra cosa.. veo que lias mucho las cosas... aqui te dejo otra posible solucion empleando "getTime()" lo que facilita la vida un cachaco... xD

Código:
  1.  
  2. var fechaOffset = new Date(1900, 1, 1);
  3. var fechaNacimiento = new Date(2014, 8, 2);
  4. var fechaActual = new Date();
  5.  
  6. var fechaDiferencia = new Date((fechaActual.getTime() + fechaOffset.getTime()) - fechaNacimiento.getTime());
  7.  
  8. alert("Tienes: " + fechaDiferencia.getYear() + " años, " + fechaDiferencia.getMonth() + " meses y " + fechaDiferencia.getDate() + " dias");
  9.  


++++++++++[>++++++++>++++++++>++++>+++<<<<-]>+++++.>--.<--.>-----.--.+++++++.---------.-.>>++.<<-.+++++.-------.<-.>>++.
Volver arriba
Ver perfil del usuario Enviar mensaje privado
zendit
Usuario Iniciado


Registrado: 12 Nov 2014
Mensajes: 24

Mensaje Publicado: Miércoles 12 Nov 2014 19:46

Título del mensaje: calculo del mes con la fecha de nacimiento

Responder citando

unsigned char* escribió:
¿Como que error? xDDD

Fecha Actual: 11/11/2014 Fecha de nacimiento: 02/08/2014

Han pasado 0 años... está correcto.


Otra cosa.. veo que lias mucho las cosas... aqui te dejo otra posible solucion empleando "getTime()" lo que facilita la vida un cachaco... xD

Código:
  1.  
  2. var fechaOffset = new Date(1900, 1, 1);
  3. var fechaNacimiento = new Date(2014, 8, 2);
  4. var fechaActual = new Date();
  5.  
  6. var fechaDiferencia = new Date((fechaActual.getTime() + fechaOffset.getTime()) - fechaNacimiento.getTime());
  7.  
  8. alert("Tienes: " + fechaDiferencia.getYear() + " años, " + fechaDiferencia.getMonth() + " meses y " + fechaDiferencia.getDate() + " dias");
  9.  




De acuerdo yo se que no hay error en la resta de los años, me referia a lo del mes, no supe explicarme disculpa.

Pero Una vez que aparezca el ALERT con los resultados, la idea es que se debe guardar el valor de la variables año,mes y dia en una tabla de postgres, ¿como haria para dejar reflejadas el valor de estas variables en un input type text?

Volver arriba
Ver perfil del usuario Enviar mensaje privado
unsigned char*
Usuario Activo


Registrado: 03 Abr 2012
Mensajes: 599
Ubicación: Aqui

Mensaje Publicado: Miércoles 12 Nov 2014 21:01

Título del mensaje: calculo del mes con la fecha de nacimiento

Responder citando

¿Dices con el codigo que te pase? Los valores ya ves como se pillan:

Para los años: fechaDiferencia.getYear()
Para los meses: fechaDiferencia.getMonth()
Para los dias: fechaDiferencia.getDate()

Código:
  1.  
  2. var anhos = fechaDiferencia.getYear();
  3. var meses = fechaDiferencia.getMonth();
  4. var dias = fechaDiferencia.getDate();
  5.  

Código:
  1.  
  2. inputTextAnhos.value = fechaDiferencia.getYear();
  3. inputTextMeses.value = fechaDiferencia.getMonth();
  4. inputTextDias.value = fechaDiferencia.getDate();
  5.  


++++++++++[>++++++++>++++++++>++++>+++<<<<-]>+++++.>--.<--.>-----.--.+++++++.---------.-.>>++.<<-.+++++.-------.<-.>>++.
Volver arriba
Ver perfil del usuario Enviar mensaje privado
zendit
Usuario Iniciado


Registrado: 12 Nov 2014
Mensajes: 24

Mensaje Publicado: Miércoles 12 Nov 2014 22:23

Título del mensaje: calculo del mes con la fecha de nacimiento

Responder citando

unsigned char* escribió:
¿Dices con el codigo que te pase? Los valores ya ves como se pillan:

Para los años: fechaDiferencia.getYear()
Para los meses: fechaDiferencia.getMonth()
Para los dias: fechaDiferencia.getDate()

Código:
  1.  
  2. var anhos = fechaDiferencia.getYear();
  3. var meses = fechaDiferencia.getMonth();
  4. var dias = fechaDiferencia.getDate();
  5.  

Código:
  1.  
  2. inputTextAnhos.value = fechaDiferencia.getYear();
  3. inputTextMeses.value = fechaDiferencia.getMonth();
  4. inputTextDias.value = fechaDiferencia.getDate();
  5.  


ya tengo la funcion que me enviaste:

var anhos = fechaDiferencia.getYear();
var meses = fechaDiferencia.getMonth();
var dias = fechaDiferencia.getDate()


inputTextAnhos.value = fechaDiferencia.getYear();
inputTextMeses.value = fechaDiferencia.getMonth();
inputTextDias.value = fechaDiferencia.getDate();


el asunto es yo tengo este input type text donde coloco la fecha de nacimiento:


<TR>
<td>Fecha de Nac.:</td>
<td>
<input type="text" size=10 name="user_date">

y se debe reflejar el resultado en estos otros pero de esta forma? disculpa que estoy un poco liado

<input type="text" size=10 name="dia" value=fechaDiferencia.getDate()>
<input type="text" size=10 name="mes" value=fechaDiferencia.getMonth()>
<input type="text" size=10 name="años" value=fechaDiferencia.getYear()>

</td>
</TR>

pero

Volver arriba
Ver perfil del usuario Enviar mensaje privado
zendit
Usuario Iniciado


Registrado: 12 Nov 2014
Mensajes: 24

Mensaje Publicado: Viernes 14 Nov 2014 01:23

Título del mensaje: calculo del mes con la fecha de nacimiento

Responder citando

zendit escribió:
unsigned char* escribió:
¿Dices con el codigo que te pase? Los valores ya ves como se pillan:

Para los años: fechaDiferencia.getYear()
Para los meses: fechaDiferencia.getMonth()
Para los dias: fechaDiferencia.getDate()

Código:
  1.  
  2. var anhos = fechaDiferencia.getYear();
  3. var meses = fechaDiferencia.getMonth();
  4. var dias = fechaDiferencia.getDate();
  5.  

Código:
  1.  
  2. inputTextAnhos.value = fechaDiferencia.getYear();
  3. inputTextMeses.value = fechaDiferencia.getMonth();
  4. inputTextDias.value = fechaDiferencia.getDate();
  5.  


ya tengo la funcion que me enviaste:

var anhos = fechaDiferencia.getYear();
var meses = fechaDiferencia.getMonth();
var dias = fechaDiferencia.getDate()


inputTextAnhos.value = fechaDiferencia.getYear();
inputTextMeses.value = fechaDiferencia.getMonth();
inputTextDias.value = fechaDiferencia.getDate();


el asunto es yo tengo este input type text donde coloco la fecha de nacimiento:


<TR>
<td>Fecha de Nac.:</td>
<td>
<input type="text" size=10 name="user_date">

y se debe reflejar el resultado en estos otros pero de esta forma? disculpa que estoy un poco liado

<input type="text" size=10 name="dia" value=fechaDiferencia.getDate()>
<input type="text" size=10 name="mes" value=fechaDiferencia.getMonth()>
<input type="text" size=10 name="años" value=fechaDiferencia.getYear()>

</td>
</TR>





no sirvio, pero gracias.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
zendit
Usuario Iniciado


Registrado: 12 Nov 2014
Mensajes: 24

Mensaje Publicado: Domingo 23 Nov 2014 14:03

Título del mensaje: calculo del mes con la fecha de nacimiento

Responder citando

a proposito que es cachaco? tu eres cachaco?

Volver arriba
Ver perfil del usuario Enviar mensaje privado
unsigned char*
Usuario Activo


Registrado: 03 Abr 2012
Mensajes: 599
Ubicación: Aqui

Mensaje Publicado: Domingo 21 Dic 2014 07:16

Título del mensaje: calculo del mes con la fecha de nacimiento

Responder citando

Sin acritud, no he respondido porque al ver esto:

Código:

<input type="text" size=10 name="dia" value=fechaDiferencia.getDate()>
<input type="text" size=10 name="mes" value=fechaDiferencia.getMonth()>
<input type="text" size=10 name="años" value=fechaDiferencia.getYear()>


Me ha dado un infarto cerebral... debes aprender conocimientos basicos de JavaScript antes de proponerte retos mayores Risa

No me gusta ayudar a la gente a que empieze la casa por el tejado.


++++++++++[>++++++++>++++++++>++++>+++<<<<-]>+++++.>--.<--.>-----.--.+++++++.---------.-.>>++.<<-.+++++.-------.<-.>>++.
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Responder al Tema
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

automatizar formato de fecha

joserodriguezan PHP 2 Sábado 20 Ene 2018 10:52 Ver último mensaje
El foro no contiene ningún mensaje nuevo

nsertar Montos segun fecha de couta en un calen...

djnilo Excel 1 Jueves 24 Sep 2015 17:41 Ver último mensaje
El foro no contiene ningún mensaje nuevo

crear un slide que además de imágenes, pase hor...

danimx Programación en general 1 Miércoles 17 Dic 2014 12:42 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Problema de Fecha y año bisiesto.

AdrianEsau_java Java 0 Sábado 13 Sep 2014 23:31 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Calculo de interes en pgAdmin III

AbrahamJava SQL - Lenguaje SQL 0 Miércoles 06 Ago 2014 16:52 Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,