我想在两天之间获得差异一天,一小时和一天。
我使用下面的代码:
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并按字符串显示它现在的天数。答案 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;
如果lastDate
在DateTime.Now
之后,那仍然是负面的。
请注意,如果显示所有三个组件,这将为您提供有意义的结果。例如,它可能会给你" 2天,3小时和10分钟"。相反,如果你想表示相同的TimeSpan
和#34; 2.194天"或者" 51.166小时"或" 3160分钟"然后,您可以使用TotalDays
,TotalHours
和TotalMinutes
。
如果您总是想要一个积极的TimeSpan
- 相当于Math.Abs
,但对于TimeSpan
,您可以只使用TimeSpan.Duration()
:
TimeSpan difference = (DateTime.Now - lastDate).Duration();