【发布时间】:2014-06-30 02:06:58
【问题描述】:
我有两个日期时间选择器开始时间和结束时间。我必须计算这个结束时间和开始时间之间的时间差。以及如何检查 am 或 pm 来计算时间差。
我已经通过使用时间跨度进行了尝试。它给了我正确的答案,但是当我选择时间假设为结束时间 12:58:02 和开始时间 10:57:05 时,它给了我错误的答案,如-599。我想知道如何将这种负面差异转化为正面。
我已尝试使用以下代码:
Dim startTime As Date
Dim endTime As Date
startTime = Convert.ToDateTime(dtpOpStTime.Value)
endTime = Convert.ToDateTime(dtpOpETime.Value)
Dim diff As System.TimeSpan
diff = endTime - startTime
actualTime = Convert.ToString(Int32.Parse(diff.Hours.ToString()) * 60 + Int32.Parse(diff.Minutes.ToString()))
ucTime.TxtCode.Text = actualTime
我的另一个问题如下: 我有 4 个日期时间选择器,2 个用于显示开始日期和结束日期,2 个用于显示开始时间和结束时间。所以当我更改日期时间跨度时,获取是错误的。所以如何解决这个问题。 我有以下代码:
Dim span As TimeSpan = dtpOpEDate.Value - dtpOpStdate.Value
Dim span1 As TimeSpan = dtpOpETime.Value - dtpOpStTime.Value
Dim duration As TimeSpan = span.Duration()
Dim duration1 As TimeSpan = span1.Duration()
Dim durDay As Int32 = duration.Days
Dim durHr As Int32 = duration1.Hours
Dim durMin As Int32 = duration1.Minutes
Dim totalDur = durDay * 24 * 60 + durHr * 60 + durMin
actualTime = totalDur.ToString()
ucTime.TxtCode.Text = actualTime
问题是通过这个我得到错误的时差,当我改变假设开始时间 10:51:02 PM 和结束时间到 3:51:04 AM 和开始日期到 2014 年 3 月 25 日和结束日期到 26 -Mar-2014 那么差异应该是 5 小时,虽然天变了,但我弄错了差异
【问题讨论】:
-
请编辑以显示您尝试过的代码
-
看看DATEDIFF函数......
标签: vb.net datepicker date-arithmetic