Foros del Web » Programación para mayores de 30 ;) » .NET »

calcular edad en visual studio .net C#

Estas en el tema de calcular edad en visual studio .net C# en el foro de .NET en Foros del Web. como calculo la edad actual segun la fecha de nacimiento, gracias...
  #1 (permalink)  
Antiguo 29/09/2004, 12:17
 
Fecha de Ingreso: septiembre-2004
Mensajes: 1
Antigüedad: 19 años, 7 meses
Puntos: 0
calcular edad en visual studio .net C#

como calculo la edad actual segun la fecha de nacimiento, gracias
  #2 (permalink)  
Antiguo 29/09/2004, 12:54
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Normalmente usas la funcion DateDiff de VB.Net pero la puedes simular en C# y te podría quedar así:

Cita:
private double DateDiff(string howtocompare, System.DateTime startDate, System.DateTime endDate)
{
double diff=0;
try
{
System.TimeSpan TS = new System.TimeSpan(startDate.Ticks-endDate.Ticks);
switch (howtocompare.ToLower())
{
case "m":
diff = Convert.ToDouble(TS.TotalMinutes);
break;
case "s":
diff = Convert.ToDouble(TS.TotalSeconds);
break;
case "t":
diff = Convert.ToDouble(TS.Ticks);
break;
case "mm":
diff = Convert.ToDouble(TS.TotalMilliseconds);
break;
case "yyyy":
diff = Convert.ToInt64(TS.TotalDays/365);
break;
case "q":
diff = Convert.ToDouble((TS.TotalDays/365)/4);
break;
default:
diff = Convert.ToDouble(TS.TotalDays);
break;
}
}
catch (Exception e)
{
diff = -1;
}
return diff;
}
Igual y encuentras alguns errores en el redondedo pero solo basta con usar un integer en vez de un double.

Pero en fin.. despues para llamarlo sería:

Cita:
System.DateTime dDate = Convert.ToDateTime("dia/mes/año");
Response.Write("Tu tienes " + DateDiff("yyyy",DateTime.Now,dDate) + " años");
Espero te sirva.

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 17/07/2013, 14:14
 
Fecha de Ingreso: julio-2013
Ubicación: Bogotá
Mensajes: 2
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: calcular edad en visual studio .net C#

probé la tuya Rootk porque tenia pereza de inventarme la rueda pero no me funcionó asi que hice esta:

Código:
private static string CarlcularEdadPersona( DateTime pFechaNacimientoPersona )
		{
			string resultado = string.Empty;
			int anioNacimiento = pFechaNacimientoPersona.Year;
			int anioActual = DateTime.Today.Year;

			int aniosDiferencia = anioActual - anioNacimiento;

			DateTime fechaNacimientoCalculo = new DateTime(DateTime.Today.Year, pFechaNacimientoPersona.Month, pFechaNacimientoPersona.Day);

			TimeSpan diasFechaNacimiento = new DateTime( DateTime.Today.Year, 1, 1 ).Subtract( fechaNacimientoCalculo );
			TimeSpan diasFechaActual = new DateTime( DateTime.Today.Year, 1, 1 ).Subtract( DateTime.Today );

			if ( Math.Abs(diasFechaNacimiento.Days) >= Math.Abs(diasFechaActual.Days) )
			{
				resultado = aniosDiferencia.ToString();
			}
			else
			{
				resultado = ( aniosDiferencia - 1 ).ToString();
			}

			return resultado;
		}
  #4 (permalink)  
Antiguo 17/07/2013, 14:48
Avatar de cronopiomx  
Fecha de Ingreso: mayo-2012
Ubicación: Programing Cloud
Mensajes: 282
Antigüedad: 12 años
Puntos: 28
Respuesta: calcular edad en visual studio .net C#

Hola, prueba esta implementacion, es efectiva.

Código:
static void Main(string[] args)
        {
            int day = 23;
            int month = 9;
            int year = 1990;
            DateTime dat = new DateTime(year, month, day);
            Console.Write(Edad(dat));
            Console.ReadKey();
        }

        public static int Edad(DateTime fechaNacimiento)
        {            
            int edad = DateTime.Now.Year - fechaNacimiento.Year;
            DateTime nacimientoAhora = fechaNacimiento.AddYears(edad);            

            if (DateTime.Now.CompareTo(nacimientoAhora) < 0)
            {
                edad--;
            }
            return edad;
        }
saludos
Cronos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 16:37.