Avatar ·

如何在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); ``` 但由于闰年和舍入问题,这会产生不准确的结果。请问如何正确实现?