如何获得两个日期之间的差异时间

时间:2015-02-12 08:37:23

标签: c#

我想在两天之间获得差异一天一小时一天

我使用下面的代码:

DateTime LastDate = DateTime.Parse("2/12/2015 11:24:23 AM");
int differenceDay = DateTime.Now.Subtract(LastDate).Days;
int differenceHoure = DateTime.Now.Hour - LastDate.Hour;//returns -11
int differenceMinute = DateTime.Now.Minute - LastDate.Minute;

当我想要获得小时时它的返回地雷(-11 e.t)。

如何获得积极的差异时刻?

你能帮助我吗? 我想得到Last Dat并按字符串显示它现在的天数。

1 个答案:

答案 0 :(得分:5)

你要按分量减去(即"这个时间减去那个小时,这个小时减去那个小时")。不要这样做 - 如果当前时间早于lastDate的小时,或者每小时都相同,那么它就不会工作 - 你得到一个负值,正如你所见。

相反,从另一个中减去一个DateTime以获得TimeSpan并使用该TimeSpan所有组件:

DateTime lastDate = DateTime.Parse("2/12/2015 11:24:23 AM");
TimeSpan difference = DateTime.Now - lastDate;
int days = difference.Days;
int hours = difference.Hours;
int minutes = difference.Minutes;

如果lastDateDateTime.Now之后,那仍然是负面的。

请注意,如果显示所有三个组件,这将为您提供有意义的结果。例如,它可能会给你" 2天,3小时和10分钟"。相反,如果你想表示相同的TimeSpan和#34; 2.194天"或者" 51.166小时"或" 3160分钟"然后,您可以使用TotalDaysTotalHoursTotalMinutes

如果您总是想要一个积极的TimeSpan - 相当于Math.Abs,但对于TimeSpan,您可以只使用TimeSpan.Duration()

TimeSpan difference = (DateTime.Now - lastDate).Duration();