关于C#:C# – 获取两个日期然后只减去年份

C# - Getting two dates then subtracting only the year

本问题已经有最佳答案,请猛点这里访问。

我想得到年份,但是日期时间里没有TotalYears,所以我想在这里碰碰运气。我要做的是在表单中输入这样的日期

1
DateTime acquisition = DateTime.Parse(Request.Form["inputAcquisition"]);

然后是今天的日期,所以它将减去收购日期。

1
 DateTime now = DateTime.Now;

这就是让我困惑的部分。减去它们

2

我得到了一些价值,但这就像是2819:012:23123:1246的胡言乱语,而不是实际数据。

我怎样才能得到一年的总差额呢?如果我输入2014年3月20日,减去今天的年份,我将得到3作为输出?


使用如下:

1
2
3
4
5
6
7
8
9
10
//Option 1 - Just Years only
DateTime current = DateTime.Now;
DateTime d = new DateTime(2014, 2, 20);
int yearDiff = current.Year - d.Year;
Console.WriteLine("Difference in Years:" + yearDiff);

// Option 2 - More precise
long diff = current.Ticks - d.Ticks;
DateTime yearDiff2 = new DateTime(diff);
Console.WriteLine("Difference in Years:" + yearDiff2.Year);

类似的问题:计算两个日期之间的差异,并得到以年为单位的值?


TimeSpan的属性将告诉您两次之间经过了许多滴答声。您可以使用.TotalDays获取表示的天数。在公历上,这不能很好地映射到年份(你可以除以365.24得到大致的年份数)。

你需要决定你所说的"年"是什么意思。1月1日这两个日期交叉了多少次?日历年的差异(2017-2014=3)?等。