以毫秒为单位获取两个DateTime实例的差异

问题描述:

什么是适当的傻瓜式方法?我使用ASP.NET MVC 3以毫秒为单位获取两个DateTime实例的差异

 DateTime a = ... 
     DateTime b = ... 
     var ms = a.Subtract(b).TotalMilliseconds; 
+0

它应该是var ms = b.Subtract(a).TotalMilliseconds;否则正确!谢谢!我使用的是TimeSpan类,并没有给出正确的值。 – sarsnake 2012-07-23 17:32:08

+1

这实际上确实使用TimeSpan类; DateTime.Subtract()的结果是TimeSpan。 – KeithS 2012-07-23 17:52:33

(datetime2 - datetime1).TotalMilliseconds 

我想这应该工作。既然你要求万无一失,我假设你不知道哪两个是以后的日子:)

Math.Abs((date1 - date2).TotalMilliseconds) 
+0

从技术上讲,这可以获得距离,而不是差异。尽管+1,因为我觉得这很可能是OP真正想要的。 – NominSim 2012-07-23 17:32:10

减法将是我的选择......

DateTime earlier = DateTime.Now; 
// ... 
DateTime later = DateTime.Now; 
double result = (later - earlier).TotalMilliseconds; 

public static Int64 GetDifferencesBetweenTwoDate(DateTime newDate, DateTime oldDate, string type) 
    { 
     var span = newDate - oldDate; 
     switch (type) 
     { 
      case "tt": return (int)span.Ticks; 
      case "ms": return (int)span.TotalMilliseconds; 
      case "ss": return (int)span.TotalSeconds; 
      case "mm": return (int)span.TotalMinutes; 
      case "hh": return (int)span.TotalHours; 
      case "dd": return (int)span.TotalDays; 
     } 
     return 0; 
    }