C#获取两个DateTime日期之间的差异

Nis*_*sse 1 c# datetime date visual-studio-2010

所以我正在开发这个具有日期功能的小应用程序(显示日,月,年等的差异)现在做"选定日期是14151天,465个月和39年前"这样的事情很容易,但怎么能我是以可读的格式("15天,7个月和39年前")说出来的?

现在要做到这一点,我已经设定了多年来的差异

int years = selectedDate.Year - currentDate.Year
Run Code Online (Sandbox Code Playgroud)

几个月和几天相同.然而,这几乎没有用,特别是当前进一个月时(因为它可能会说15天和1个月因为date1.Day - date2.Day = 15,而实际上可能是8天.我认为这是因为日期的工作方式与几个月的东西,但我不确定.

无论如何,我希望我有任何意义,因为我甚至无法真正跟踪自己.任何想法都非常感谢.:d

Han*_*ney 5

DateTime从另一个中减去一个返回一个TimeSpan,您可以使用它来确定两个日期之间的时间段,表示为天,小时,分钟,秒等的时间测量值.

TimeSpan result = selectedDate - currentDate;
result.Days...
result.Hours...
etc.
Run Code Online (Sandbox Code Playgroud)

获得数月和数年是比较棘手的,因为一个月中的日子每年都不同等等.您必须手动进行数学运算,可能是原始DateTime对象.