C#格式化TimeSpan以显示日期

时间:2017-01-23 02:08:22

标签: c# datetime 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格式?

2 个答案:

答案 0 :(得分:0)

正如Jon Skeet所说:

  

TimeSpan没有明智的概念"年"因为它取决于   起点和终点。

为什么不试试他的Noda Time

您可以手动下载here

您还可以除以365.25(一年中的平均天数),并获得整数

Convert.ToInt32(age.Days / 365.25);

答案 1 :(得分:0)

使用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);