计算时差并仅返回小时和分钟(在VB.net中)

Far*_*man 2 vb.net visual-studio-2010 visual-studio

我正在开发一个计算时差的系统.我如何比较两个时间(与日期)并获得差异的小时和分钟?

例1:

datetime1 = 1-Apr-2014 01:05:04 AM
datetime2 = 1-Apr-2014 02:05:04 AM
Run Code Online (Sandbox Code Playgroud)

结果将是:

datetime2 - datetime1 = 01 Hours 00 Minutes
Run Code Online (Sandbox Code Playgroud)

例2:

datetime1 = 1-Apr-2014 01:05:04 AM
datetime2 = 2-Apr-2014 02:15:04 AM
Run Code Online (Sandbox Code Playgroud)

结果将是:

datetime2 - datetime1 = 25 Hours 10 Minutes
Run Code Online (Sandbox Code Playgroud)

负值(对于datetime1> datetime2)也有助于指示datetime1大于datetime2

例:

datetime1 = 2-Apr-2014 01:05:04 AM
datetime2 = 1-Apr-2014 01:05:04 AM
Run Code Online (Sandbox Code Playgroud)

结果将是:

datetime2 - datetime1 = -24 Hours 00 Minutes
Run Code Online (Sandbox Code Playgroud)

谢谢!

Tom*_*cak 6

我的建议是使用类似的东西

Dim minutesDiff = DateDiff(DateInterval.Minute,datetime1,datetime2)
Console.WriteLine("{0} hours {1} minutes", Math.Abs(minutesDiff) / 60, Math.Abs(minutesDiff) Mod 60)
Run Code Online (Sandbox Code Playgroud)

要将此扩展到秒:

Dim secondsDiff = DateDiff(DateInterval.Second,datetime1,datetime2)
Console.WriteLine("{0} hours {1} minutes {2} seconds", Math.Abs(secondsDiff)/3600, (Math.Abs(secondsDiff) Mod 3600) / 60, Math.Abs(secondsDiff) Mod 60)
Run Code Online (Sandbox Code Playgroud)