如何在vb6中计算时差

如何在vb6中计算时差,vb6,Vb6,我想用vb6计算时间差。我是在vb.net中完成的。但是我不知道如何在vb6中转换。因为日期时间类型在vb6中不可用 我已经在下面粘贴了我的vb.net代码。如何在vb6中执行同样的操作 Public Sub timecal() Dim dFrom As DateTime Dim dTo As DateTime Dim tempstarttime As DateTime Dim idletime As String = "00:05:00" Dim Nee

我想用vb6计算时间差。我是在vb.net中完成的。但是我不知道如何在vb6中转换。因为日期时间类型在vb6中不可用

我已经在下面粘贴了我的vb.net代码。如何在vb6中执行同样的操作

Public Sub timecal()
    Dim dFrom As DateTime
    Dim dTo As DateTime
    Dim tempstarttime As DateTime
    Dim idletime As String = "00:05:00"
    Dim Needtosub As String = "00:01:00"
    Dim timeDiff As String
    If DateTime.TryParse(start_time, dFrom) AndAlso DateTime.TryParse(end_time, dTo) Then
        Dim TS As TimeSpan = dTo - dFrom
        Dim hour As Integer = TS.Hours
        Dim mins As Integer = TS.Minutes
        Dim secs As Integer = TS.Seconds
        timeDiff = ((hour.ToString("00") + ":") + mins.ToString("00") + ":") + secs.ToString("00")
        sscheck1 = False
        If timeDiff >= idletime Then
            tempstarttime = System.DateTime.Parse(end_time)
            tempstarttime = tempstarttime.AddMinutes(-1)
            start_time = Strings.Format(tempstarttime, "yyyy-MM-dd HH:mm:ss")
            sscheck1 = True
        End If
    End If
End Sub

使用vb DateDiff函数,即

Dim datTim1 As Date = #1/4/2001#
Dim datTim2 As Date = #1/9/2001#
' Assume Sunday is specified as first day of the week. 
Dim wD As Long = DateDiff(DateInterval.Weekday, datTim1, datTim2)
Dim wY As Long = DateDiff(DateInterval.WeekOfYear, datTim1, datTim2)
或者可以用另一种通用方法来完成

    Dim dtStart As Long
    Dim dtEnd As Long
    Dim result As Long
    Dim i As Integer

    dtStart = GetTickCount

    dtEnd = GetTickCount
    result = dtEnd – dtStart  // miliseconds 
   OutAddIn.objApptItem.Start = CDbl(result)   // miliseconds to date

您可以使用

以分钟为单位的差异:

Dim lMinutes as Long
lMinutes = DateDiff("n", dFrom, dTo)
以秒为单位的差异:

Dim lSeconds as Long
lSeconds = DateDiff("s", dFrom, dTo)
以小时为单位的差异:

Dim lHours as Long
lHours = DateDiff("h", dFrom, dTo)
为了以小时:分钟:秒为单位获取字符串时间差,我将执行以下操作:

Dim lSeconds as Long, lMinutes as Long
lSeconds = DateDiff("s", dFrom, dTo)
lMinutes = Fix(lSeconds / 60) '// Gets the whole number (not rounded)
lSeconds = ((lSeconds / 60) - lMinutes) * 60 '// get the remaining seconds
sTimeDiff = "00:" & Format$(lMinutes, "00") & ":" & Format$(lSeconds, "00")

注意:如果
lMinutes
大于60,则在提取分和秒之前,您需要进行类似的数学运算以提取小时部分。根据您的示例,此代码假定您的时间跨度小于一小时。

请注意,
GetTickCount
示例不处理滚动的值,因此如果您运气不好,有一个周期跨越该事件,您的结果将被关闭约47天。