C # Форматирование TimeSpan для отображения даты

Я работаю над простой программой, которая подсчитывает, сколько лет участнику, и применяет правильный членский взнос в зависимости от возраста.

        public static DateTime DateTime()
    {
        DateTime birth = new System.DateTime(1991, 9, 20);
        DateTime today = new System.DateTime(2017, 1, 22);
        TimeSpan age = today - birth;
        Console.WriteLine(age);
        return birth;
    }

Вот код, который я использую, мое возвращаемое значение

9256.00:00:00

Как преобразовать это в более читаемый формат yyyy, mm, dd?


person Luke Shinn    schedule 23.01.2017    source источник
comment
этот формат не имеет смысла для определенного промежутка времени.   -  person Daniel A. White    schedule 23.01.2017
comment
Что вы на самом деле хотите показать?   -  person sujith karivelil    schedule 23.01.2017
comment
Если вам нужен возраст в понимании большинства людей - количество полных лет жизни человека - вы можете использовать stackoverflow.com/questions/9/, который дает результат всего за несколько лет.   -  person Alexei Levenkov    schedule 23.01.2017
comment
Я искал лучшее решение, чтобы узнать, сколько дней прошло с тех пор.   -  person Luke Shinn    schedule 23.01.2017


Ответы (2)


Использование nodatime

var ld1 = new LocalDate(1991, 9, 20);
var ld2 = new LocalDate(2017, 1, 22);
var period = Period.Between(ld1, ld2);

Debug.WriteLine(period.Years);
Debug.WriteLine(period.Months);
Debug.WriteLine(period.Days);
person Daniel    schedule 23.01.2017
comment
Спасибо! Это помогает мне оказаться там, где мне нужно быть. - person Luke Shinn; 23.01.2017

Как сказал Джон Скит:

TimeSpan не имеет разумного понятия «годы», потому что он зависит от начальной и конечной точки.

Почему бы вам вместо этого не попробовать его Noda Time?

Вы можете вручную загрузить здесь

Вы также можете разделить на 365,25 (среднее количество дней в году) и получить целое число

Convert.ToInt32(age.Days / 365.25);
person Malcolm Salvador    schedule 23.01.2017
comment
Голосование как дублирующее - лучший вариант, когда вам нечего добавить к существующему ответу на другой вопрос. - person Alexei Levenkov; 23.01.2017
comment
Отредактировано, чтобы немного дополнить ответ. - person Malcolm Salvador; 23.01.2017