JavaScript - calculo del mes con fecha de nacimiento

 
Vista:
sin imagen de perfil

calculo del mes con fecha de nacimiento

Publicado por zendi (90 intervenciones) el 11/11/2014 19:42:37
En esta funcion solo se calcula la edad a partir de la fecha de nacimiento y arroja los años de edad, pero puede darse el caso de calcule los meses; 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.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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";
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

calculo del mes con fecha de nacimiento

Publicado por zendi (90 intervenciones) el 12/11/2014 13:39:11
alguien pudiera ver cual solucion habria?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

calculo del mes con fecha de nacimiento

Publicado por zendi (90 intervenciones) el 13/11/2014 00:09:32
Por lo menos den una opinion........... Es aceptable de todas maneras.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

calculo del mes con fecha de nacimiento

Publicado por xve (2100 intervenciones) el 13/11/2014 15:16:32
Hola Zendi, esa función que estas utilizando, es para calcular la edad, y funciona correctamente, ya que tiene 0 años.... si lo que quieres, es saber los meses cuando tiene 0 años, creo que es tan sencillo como poner al final de la función:

1
2
3
4
5
6
7
8
if(edad==0)
        {
            edad=ahora_mes-mes;
            console.log(ahora_mes+"-"+mes);
            document.getElementById("result").innerHTML="Tienes "+edad+" meses";
        }else{
            document.getElementById("result").innerHTML="Tienes "+edad+" años";
        }

Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

calculo del mes con fecha de nacimiento

Publicado por zendi (90 intervenciones) el 14/11/2014 02:15:02
hola Xve, disculpa nuevamente pero no funciono donde deberia poner ese IF que me enviaste
lo he colocado en cada opcion y no trabaja.
esta es la funcion:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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_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";
    }
}

y este es el if:

1
2
3
4
5
6
7
8
9
10
//if(edad==0)
{
   edad=ahora_mes-mes;
   console.log(ahora_mes+"-"+mes);
   document.getElementById("result").innerHTML="Tienes "+edad+" meses";
   }
   else
   {
   document.getElementById("result").innerHTML="Tienes "+edad+" años"; }
}
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar