例如我要日期型数2004-09-17 和 2004-09-15 相减得到用整型数表示的 2
即是求两个日期间相隔的天数

解决方案 »

  1.   

    Private Sub Command1_Click()
    Dim x As Integer
    x = DateDiff("d", #9/15/2004#, #9/17/2004#)
    MsgBox xEnd SubPrivate Sub Command2_Click()
    Dim x As Integer
    x = #9/17/2004# - #9/15/2004#
    MsgBox x
    End Sub
      

  2.   

    DateDiff 函數
          傳回一 Variant (Long) 的值,表示兩個日期間相差的時間間隔單位數目。語法DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])DateDiff 函數語法中有下列指名引數:單元 說明 
    Interval 必要引數。字串運算式,表示用來計算date1 和 date2 之時間差的時間間隔單位。 
    Date1﹐date2 必要引數。Variant (Date)。若要計算兩個日期之時間差,計算的順序是從 date1 到 date2。 
    Firstdayofweek 選擇性引數。常數,表示一星期的第一天。如果省略此引數,則以星期日為第一天。 
    firstweekofyear 選擇性引數。常數,表示一年的第一週。如果省略此引數,則以包含一月一日的星期為第一週。 
    設定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 包含一月一日的星期 (預設值)。 
    vbFirstFourDays 2 第一個至少包含四天年假的星期。 
    vbFirstFullWeek 3 第一個無跨年的星期。 
    請注意DateDiff 函數可用來決定兩個日期之間的時間間隔單位數目。例如,您可以使用 DateDiff 來計算某兩個日期之間相隔幾日,或計算從今天起到年底還有多少個星期。如果想知道 date1 與 date2 相差的 [日] 數,interval 可以是 [一年的日數] ("y") 或 [日] ("d")。如果 interval 是 [一週的日數] ("w"),DateDiff 傳回兩日期間相差的週數。如果 date1 是星期一,DateDiff 計算到 date2 為止之星期一的個數。包含 date2 但不包含 date1。不過,如果 interval 是 [週] ("ww"),DateDiff 函數傳回兩日期間的 [日歷週] 數,由計算 date1 與 date2 之間星期日的個數而得。如果 date2 剛好是星期天,則 date2 也會被加進計數結果中;但不論 date1 是否為星期天,它都不會被算進去。如果 date1 比 date2 來得晚,DateDiff 函數傳回值為負數。如果 interval 引數為 [w] 或 [ww],firstdayofweek 引數會影響其計算結果。如果以短式日期的格式傳入日期引數,引數內的年份資料若有給定,則該日期便是固定的。但是,若日期以雙引號括起來,且年份資料並未給定,則現在的年份便會自動加入在該日期引數中。如此程式便可適用於不同年份而無須更改程式碼。若計算十二月三十一日和來年的一月一日的年份差,DateDiff 會傳回 1 表示相差一個年份,雖然實際上只相差一天而已。
      

  3.   

    楼上的几位说的很清楚了,用DateDiff 函數就行了
      

  4.   

    Private Sub Form_Load()    'Tony Jones, Queensland, Australia
        'Email: [email protected]
        
        'Southern Cross Visual Basic Code and Links
        'http:www.geocities.com/~scvb/index.html
        
        'Displays the differene between two dates
        '11-11-97 to 01-01-01 (Next century!)
        'Returns: Days formatted with ',' delimiter, as used
        'in Southern Hemisphere ie Australia, New Zealand
            
        Label2 = "The difference between 11-11-97 to 01-01-01 is:"
        Label1 = Format$(days360("11-11-97", "01-01-01"), "###,###") & " days"End Sub
    Public Function days360(dt1 As Date, dt2 As Date) As Long
        
        Dim z1 As Long, z2 As Long
        Dim d1 As Long, d2 As Long
        Dim m1 As Long, m2 As Long
        Dim y1 As Long, y2 As Long
        
        d1 = Day(dt1)
        m1 = Month(dt1)
        y1 = Year(dt1)
        
        d2 = Day(dt2)
        m2 = Month(dt2)
        y2 = Year(dt2)
        
        If d1 = 31 Then
            z1 = 30
        Else
            z1 = d1
        End If
        
        If d2 = 31 And d1 >= 30 Then
            z2 = 30
        Else
            z2 = d2
        End If    days360 = (y2 - y1) * 360 + (m2 - m1) * 30 + (z2 - z1)End Function
      

  5.   

    VarName = DateDiff("d", CDate("9/15/2004"), CDate("9/17/2004"))
      

  6.   

    msdn上查DateDiff函数
    有大把说明
    ^_^