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# - 获取两个日期然后只减去年份[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Java以这种格式减去两个日期[重复]

如何转换日期以仅获取数字年份[重复]

如何解析日期以获取 Python 中的年份 [重复]

减去两个 DateTime 对象 - Python [重复]

使用日历视图减去日期[重复]

以纪元毫秒为单位从当前日期减去两天 java [重复]