【发布时间】:2012-01-31 01:47:22
【问题描述】:
有人可以帮我完成这项工作吗?
我想在 VB.NET 中计算两个日期之间的时间,如下所示:
startdate: 2011/12/30
enddate: 2011/12/31
计算: ?小时 ?分钟 ?秒
【问题讨论】:
标签: vb.net vb.net-2010
有人可以帮我完成这项工作吗?
我想在 VB.NET 中计算两个日期之间的时间,如下所示:
startdate: 2011/12/30
enddate: 2011/12/31
计算: ?小时 ?分钟 ?秒
【问题讨论】:
标签: vb.net vb.net-2010
你可以试试这个
DateTime startTime = DateTime.Now;
DateTime endTime = DateTime.Now.AddSeconds( 75 );
TimeSpan span = endTime.Subtract ( startTime );
Console.WriteLine( "Time Difference (seconds): " + span.Seconds );
Console.WriteLine( "Time Difference (minutes): " + span.Minutes );
Console.WriteLine( "Time Difference (hours): " + span.Hours );
Console.WriteLine( "Time Difference (days): " + span.Days );
输出喜欢,
Time Difference (seconds): 15
Time Difference (minutes): 1
Time Difference (hours): 0
Time Difference (days): 0
和上面的VB.Net等价的:
Dim startTime As DateTime = DateTime.Now
Dim endTime As DateTime = DateTime.Now.AddSeconds(75)
Dim span As TimeSpan = endTime.Subtract(startTime)
Console.WriteLine("Time Difference (seconds): " + span.Seconds)
Console.WriteLine("Time Difference (minutes): " + span.Minutes)
Console.WriteLine("Time Difference (hours): " + span.Hours)
Console.WriteLine("Time Difference (days): " + span.Days)
【讨论】:
基于问题,计算两个日期之间的时间,最好使用DateDiff。在下面的示例中,我们还可以将 Hour 替换为 Minute、Second、Month 等:
Dim timeDif As Long = DateDiff(DateInterval.Hour, startDate, endDate)
使用TimeSpan返回不包括每日周期的时差,见以下代码:
Dim startDate As Date = Date.Now
Dim endDate As Date = startDate.AddDays(3) 'add 3 days to startDate
Dim timeSpan As TimeSpan = endDate.Subtract(startDate)
Dim difDays As Integer = timeSpan.Days 'get 3 days
Dim difHr As Integer = timeSpan.Hours 'get 0 hours although 3 days difference
Dim difMin As Integer = timeSpan.Minutes 'get 0 minutes although 3 days difference
【讨论】:
当您减去 2 个 DateTimes 时,您会得到一个 TimeSpan 结构,它包含所有这些属性。
【讨论】: