Calcular edad partiendo de fecha de nacimiento

Buenas tardes [forCoders], en el post de hoy quiero explicaros como calcular la edad de una persona/empresa… partiendo de una fecha de nacimiento (solamente).

Veréis, en el proyecto donde lo tuve que utilizar, tenía solamente la fecha de nacimiento del usuario, pero para mostrar su perfil, mostraba su edad. Muchas veces, pecamos en restar la fecha de hoy, con la fecha de nacimiento, pero al pasarlo a Integer, este se redondea al alza y con lo que te añade 1 año según como dé el resultado…

Para solucionarlo y buscando por internet, dí con la solución.

public static string Age(DateTime birthday)
{
    DateTime now = DateTime.Today;
    int age = now.Year - birthday.Year;
    if (now < birthday.AddYears(age)) age--;

    return age.ToString();
}

A esta función, le pasamos la fecha de cumpleaños. Una vez dentro de ella, cogemos la fecha de sistema (la fecha de hoy), y hacemos la resta. Seguidamente, añadimos el resultado de la resta (nuestros supuestos años) y si al sumarlo a nuestra fecha de cumpleaños nos da superior al día de hoy, quiere decir que la resta anterior ha redondeado al alza y pues debemos restar 1 año.

Así pues, podéis copiar/pegar esta función (está programada para C#) y a sacarle humo!! Si trabajáis con otros lenguajes, no os costará mucho darle forma partiendo de este cálculo.