Avatar ·

¿Cómo calcular la edad de una persona basada en la fecha de nacimiento en C#?

¡Hola a todos! Soy un desarrollador principiante en C# y me encontré con una tarea aparentemente simple: calcular la edad del usuario basada en su fecha de nacimiento. Tengo una variable `DateTime birthday` (por ejemplo, `new DateTime(1990, 5, 15)`), y necesito obtener un número entero de años completos hasta la fecha actual. Intenté la forma más obvia: restar la fecha de nacimiento de la fecha actual y tomar la diferencia en años: ```csharp DateTime today = DateTime.Today; int age = today.Year - birthday.Year; ``` ¡Pero esto no funciona correctamente! Si el cumpleaños de la persona aún no ha ocurrido este año, la edad resulta aumentada en 1 año. Por ejemplo, si hoy es 1 de enero de 2025 y el cumpleaños es el 15 de mayo de 1990, mi código dará 35 años, aunque en realidad la persona tiene 34. También probé usar `TimeSpan`: ```csharp TimeSpan difference = today - birthday; int age = (int)(difference.TotalDays / 365.25); ``` Pero esto da resultados inexactos debido a los años bisiestos y al redondeo. Por favor, indíquenme cómo calcularlo correctamente.