¿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.