请问如何求,两个时间之间的差值如:
dim d as date
dim a as date
d=Time
a=10:26:08
如何求a与d之间的差值,差值由分钟或小时表示(如果date中有日期和时间怎么求?),同时如何分别读出Time中的小时/分钟/秒
多谢了!

解决方案 »

  1.   

    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
      

  2.   

    Private Sub Command1_Click()
        Dim d As Date
        Dim a As Date
        d = Time
        a = CDate("10:26:08")
        '时间差
        Debug.Print DateDiff("h", a, d)
        
        Debug.Print DatePart("h", d)
        Debug.Print DatePart("n", d)
        Debug.Print DatePart("s", d)
        'or
        Debug.Print Hour(d)
        Debug.Print Minute(d)
        Debug.Print Second(d)
    End Sub
      

  3.   


    DateDiff 函数返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。语法DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])DateDiff 函数语法中有下列命名参数:部分 描述 
    interval 必要。字符串表达式,表示用来计算date1 和 date2 的时间差的时间间隔 
    Date1□date2 必要;Variant (Date)。计算中要用到的两个日期。 
    Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。 
    firstweekofyear 可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。 
    设置interval 参数的设定值如下:设置 描述 
    yyyy 年 
    q 季 
    m 月 
    y 一年的日数 
    d 日 
    w 一周的日数 
    ww 周 
    h 时 
    n 分钟 
    s 秒 
    firstdayofweek 参数的设定值如下:常数 值 描述 
    vbUseSystem 0 使用 NLS API 设置。 
    vbSunday 1 星期日(缺省值) 
    vbMonday 2 星期一 
    vbTuesday 3 星期二 
    vbWednesday 4 星期三 
    vbThursday 5 星期四 
    vbFriday 6 星期五 
    vbSaturday 7 星期六 常数 值 描述 
    vbUseSystem 0 用 NLS API 设置。 
    vbFirstJan1 1 从包含 1 月 1 日的星期开始(缺省值)。 
    vbFirstFourDays 2 从第一个其大半个星期在新的一年的一周开始。 
    vbFirstFullWeek 3 从第一个无跨年度的星期开始。 
    说明DateDiff 函数可用来决定两个日期之间所指定的时间间隔数目。例如,可以使用 DateDiff 来计算两个日期之间相隔几日,或计算从今天起到年底还有多少个星期。为了计算 date1 与 date2 相差的日数,可以使用“一年的日数”(y) 或“日”(d)。当 interval 是“一周的日数”(w) 时,DateDiff 返回两日期间的周数。如果 date1 是星期一,DateDiff 计算到 date2 为止的星期一的个数。这个数包含 date2 但不包含 date1。不过,如果 interval 是“周”(ww),则 DateDiff 函数返回两日期间的“日历周”数。由计算 date1 与 date2 之间星期日的个数而得。如果 date2 刚好是星期日,则 date2 也会被加进 DateDiff 的计数结果中;但不论 date1 是否为星期日,都不将它算进去。如果 date1 比 date2 来得晚,则 DateDiff 函数的返回值为负数。firstdayofweek 参数会影响使用时间间隔符号 “W” 或 “WW” 计算的结果。如果 date1 或 date2 是日期文字,则指定的年份成为该日期的固定部分。但是,如果 date1 或 date2 用双引号 (" ") 括起来,且年份略而不提,则在每次计算表达式 date1 或 date2 时,当前年份都会插入到代码之中。这样就可以书写适用于不同年份的程序代码。在计算 12 月 31 日和来年的 1 月 1 日的年份差时,DateDiff 返回 1 表示相差一个年份,虽然实际上只相差一天而已。
    --------------------------------------------------------------------------------DatePart 函数返回一个包含已知日期的指定时间部分的 Variant (Integer)。语法DatePart(interval, date[,firstdayofweek[, firstweekofyear]])DatePart 函数语法中有下列命名参数:部分 描述 
    interval 必要。字符串表达式,是要返回的时间间隔。 
    date 必要。要计算的 Variant (Date) 值。 
    Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。 
    firstweekofyear 可选。指定一年第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。 
    设置interval 参数的设定值如下:设置 描述 
    yyyy 年 
    q 季 
    m 月 
    y 一年的日数 
    d 日 
    w 一周的日数 
    ww 周 
    h 时 
    n 分钟 
    s 秒 
    firstdayofweek 参数的设定值如下:常数 值 描述 
    vbUseSystem 0 使用 NLS API 设置。 
    vbSunday 1 星期日(缺省值) 
    vbMonday 2 星期一 
    vbTuesday 3 星期二 
    vbWednesday 4 星期三 
    vbThursday 5 星期四 
    vbFriday 6 星期五 
    vbSaturday 7 星期六 
    firstweekofyear 参数的设定值如下:常数 值 描述 
    vbUseSystem 0 使用 NLS API 设置。 
    vbFirstJan1 1 从包含 1 月 1 日的星期开始(缺省值)。 
    vbFirstFourDays 2 从第一个其大半个星期在新的一年的一周开始。 
    vbFirstFullWeek 3 从第一个无跨年度的星期开始。 
    说明DatePart 函数可以用来计算日期并返回指定的时间间隔。例如,可以使用DatePart 计算某个日期是星期几或目前为几点钟。firstdayofweek 参数会影响使用时间间隔符号 “W” 或 “WW” 计算的结果。如果 date 是日期文字,则指定的年份成为该日期的固定部分。但是,如果 date 用双引号 (" ") 括起来,且年份略而不提,则在每次计算 date 表达式时,当前年份都会插入到代码之中。这样就可以书写适用于不同年份的程序代码。
      

  4.   

    用DateDiff 函数了,楼上介绍的很详细了