C# - 获取两个日期然后只减去年份[重复]
Posted
技术标签:
【中文标题】C# - 获取两个日期然后只减去年份[重复]【英文标题】:C# - Getting two dates then subtracting only the year [duplicate] 【发布时间】:2017-08-04 06:04:14 【问题描述】:我想知道年份,但 DateTime 中没有 TotalYears
,所以我在这里试试运气。
我正在做的是我从这样的表格中输入日期
DateTime acquisition = DateTime.Parse(Request.Form["inputAcquisition"]);
然后是今天的日期,因此它将减去获取日期。
DateTime now = DateTime.Now;
现在这是让我感到困惑的部分。减去它们
TimeSpan difference = now - acquisition ;
我收到了一些价值,但这就像2819:012:23123:1246
的胡言乱语 // 不是实际数据。
我怎样才能得到一年的总差额?如果我输入 2014 年 3 月 20 日,减去今天的年份,我会得到 3
作为输出?
【问题讨论】:
我的问题没有那个问题那么复杂。我只想在 2 年零 73 天之内不要像2.2
那样得到年份
检查:***.com/questions/15957984/…
【参考方案1】:
TimeSpan
的属性会告诉你两次之间已经过去了很多滴答。您可以使用.TotalDays
来获取代表的天数。在公历上,这不能很好地映射到年(您可以除以 365.24 以获得大致的年数)。
您需要确定您所说的年份是什么意思。 1 月 1 日在这两个日期之间交叉了多少次?日历年的差异(2017 - 2014 = 3)?等等
【讨论】:
【参考方案2】:如下使用:
//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);
类似问题:Calculate the difference between two dates and get the value in years?
【讨论】:
希望您忘记添加对this的引用 我使用了选项 1。如果闰年有问题或麻烦吗? 闰年没关系。在第一个选项中,它将仅考虑年份。在第二个选项中,它将考虑月、日、小时等,并以年为单位给出确切的差异。例如,如果您的输入是 2014 年 1 月 1 日,则第一个选项的输出将为 3(2017 - 2014),第二个选项的输出为 4(因为它考虑月、日、小时等) @RajeshKrishna:你也必须阅读this 谢谢你,伙计...我没有看到这些答案。正如您建议的那样,添加对其他答案的引用。以上是关于C# - 获取两个日期然后只减去年份[重复]的主要内容,如果未能解决你的问题,请参考以下文章