我正在写一个转换器,它取一个人的出生日期并生成他们的年龄.我写了一些看起来像这样的东西:
public class DateOfBirthToAgeConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var date = value as DateTime?;
if (date == null) return null;
return (DateTime.Now - date).Years;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
Run Code Online (Sandbox Code Playgroud)
我发现除了两个对象之外没有任何Years属性.我对此感到有些惊讶.我想到为什么可能没有.我认为这可能是因为闰日,但按照这个逻辑,不应该因为夏令时.TimeSpanDateTimeYearsDays
没有Months明确的意义,因为没有标准的月份长度.
我能够编写一些不同的代码来获得正确的年龄,但我仍然真的想知道为什么没有Years或Weeks属性TimeSpan.有谁知道原因?