如何计算两个时间的差: 有两个命令按钮(启动和停止), 
当单击启动按钮时在窗体的一个标签内显示当前时间,然后单击停止按钮在第二个标签内显示当前时间,在第三个标签内显示第二个标签与第一个标签之间的差。 再请教:在使用计时器时如何将显示的时间变为am和pm格式 非常感谢 请写出过程
  

解决方案 »

  1.   

    用函数datadiff函数求两个时间差
      

  2.   

    Format(MyTime, "hh:mm:ss AMPM")   ' 返回 "05:04:23 PM"。
      

  3.   

    不需要Timer控件,在启动按钮时用time命令,并赋值给标签,取t1=timer。在停止时使用time命令,并赋值给标签,取t=timer-t1,t就是差值,以秒为单位的数值,你再将它赋值给标签就可以了。
      

  4.   

    Dim a, b As Date
    Private Sub Command1_Click()
     Label1.Caption = Time
     a = Time
    End SubPrivate Sub Command2_Click()
     Label2.Caption = Time
     b = Time
     Label3.Caption = DateDiff("s", a, b)
    End Sub
      

  5.   

    Function Convtime(date1 As Date, date2 As Date) As String
    '
    '功能 : 计算二个时间的时间差
    '
    '参数 : date1 是较早的时间, Variant (Date)。
    ' date2 是较晚的时间, Variant (Date)。
    '
    '若要计算两个日期之时间差,计算顺序是从 date1 到 date2
    '
    '返回值 : 时间差的组合字串, 例如 2年21天13小时5分钟3秒
    '
    Dim wsecond As Long '总秒数 / 剩余秒数
    Dim wminute As Long '总分钟数 / 剩余分钟数
    Dim whour As Long '总时数 / 剩余时数
    Dim wday As Long '总天数 / 剩余天数
    Dim wyear As Long '总年数wsecond = DateDiff("s", date1, date2) '总秒数
    If wsecond > 60 Then
    wminute = wsecond \ 60 '总分钟数
    wsecond = wsecond Mod 60 '计算剩余秒数
    End If
    If wminute > 60 Then
    whour = wminute \ 60 '总时数
    wminute = wminute Mod 60 '计算剩余分钟数
    End If
    If whour > 24 Then
    wday = whour \ 24 '总天数
    whour = whour Mod 24 '计算剩余时数
    End If
    If wday > 365 Then
    wyear = wday \ 365 '总年数
    wday = wday Mod 365 '计算剩余天数
    End If'拼凑计算结果字串
    If wyear > 0 Then Convtime = Convtime & wyear & "年"
    If wday > 0 Then Convtime = Convtime & wday & "天"
    If whour > 0 Then Convtime = Convtime & whour & "小时"
    If wminute > 0 Then Convtime = Convtime & wminute & "分钟"
    If wsecond > 0 Then Convtime = Convtime & wsecond & "秒"
    End Function