如何在C#中根据出生日期计算年龄?
大家好!我是一名C#初学者,遇到了一个看似简单的任务——根据用户的出生日期计算年龄。我有一个 `DateTime birthday` 变量(例如 `new DateTime(1990, 5, 15)`),需要获取截至今天的完整年数整数。
我尝试了最直接的方法——用当前日期减去出生日期并取年份差:
```csharp
DateTime today = DateTime.Today;
int age = today.Year - birthday.Year;
```
但这不能正确工作!如果用户今年的生日还没到,年龄就会多算1年。例如,如果今天是2025年1月1日,而生日是1990年5月15日,我的代码会输出35岁,但实际上用户才34岁。
我还尝试了使用 `TimeSpan`:
```csharp
TimeSpan difference = today - birthday;
int age = (int)(difference.TotalDays / 365.25);
```
但由于闰年和舍入问题,这会产生不准确的结果。请问如何正确实现?