小编Owe*_*son的帖子

为什么TimeSpan没有Age属性?

我正在写一个转换器,它取一个人的出生日期并生成他们的年龄.我写了一些看起来像这样的东西:

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明确的意义,因为没有标准的月份长度.

我能够编写一些不同的代码来获得正确的年龄,但我仍然真的想知道为什么没有YearsWeeks属性TimeSpan.有谁知道原因?

c# datetime timespan

11
推荐指数
3
解决办法
1607
查看次数

标签 统计

c# ×1

datetime ×1

timespan ×1