DateDiff
 
Gets the difference of two dates measured by a specified interval

Syntax

Declare Function DateDiff ( ByRef interval As Const String, ByVal serial1 As Double, ByVal serial2 As Double, ByVal firstdayofweek As Long = fbUseSystem, ByVal firstdayofyear As Long = fbUseSystem ) As Long

Usage

#include "vbcompat.bi"
result = DateDiff( interval, date_serial1, date_serial2 [, firstdayofWeek [, firstweekofyear ] ] )

Parameters

interval
the unit of time (interval) with which to measure the difference
date_serial1
starting date serial
date_serial2
end date serial
firstdayofweek
first day of the week
firstdayofyear
first day of the year

Return Value

Returns an integer corresponding to the number of intervals found between two Date Serials.

If date_serial1 > date_serial2, the result is negative.

Description


interval is specified as follows:

valueinterval
yyyyyears
qquarter(three months)
mmonths
w seven day periods
wwcalendar weeks
d,ydays
hhours
nminutes
sseconds


first_dayofweek Affects the counting when 'ww' interval is used.

valuefirst day of weekconstant
omittedsunday 
0local settingsfbUseSystem
1sundayfbSunday
2mondayfbMonday
3tuesdayfbTuesday
4wednesdayfbWednesday
5thursdayfbThursday
6fridayfbFriday
7saturdayfbSaturday


first_weekofyear specifies which year (previous or next) that the week which spans the end of one year and the beginning of the next should included with.

valuefirst week of yearconstant
0local settingsfbUseSystem
1January 1's weekfbFirstJan1
2first weeks having 4 days in the yearfbFirstFourDays
3first full week of yearfbFirstFullWeek


Notice if you do an arithmetical subtraction of two date serials you get the difference in days.

The compiler will not recognize this function unless vbcompat.bi or datetime.bi is included.

Example

#include "vbcompat.bi"

Dim s As String, d1 As Double, d2 As Double

Line Input "Enter your birthday: ", s

If IsDate( s ) Then
  d1 = DateValue( s )
  d2 = Now()

  Print "You are " & DateDiff( "yyyy", d1, d2 ) & " years old."
  Print "You are " & DateDiff( "d", d1, d2 ) & " days old."
  Print "You are " & DateDiff( "s", d1, d2 ) & " seconds old."

Else
  Print "Invalid date"

End If


Differences from QB

  • Did not exist in QB. This function appeared in Visual Basic.

See also