Microsoft®
Visual Basic® Scripting Edition DateDiff Function |
| Language Reference |
|
Returns the number of intervals between two dates.
DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])
The DateDiff function syntax has these parts:
Part Description interval Required. String expression that is the interval you want to use to calculate the differences between date1 and date2. See Settings section for values. date1, date2 Required. Date expressions. Two dates you want to use in the calculation. firstdayof week Optional. Constant that specifies the day of the week. If not specified, Sunday is assumed. See Settings section for values. firstweekofyear Optional. Constant that specifies the first week of the year. If not specified, the first week is assumed to be the week in which January 1 occurs. See Settings section for values.
The interval argument can have the following values:
Setting Description yyyy Year, but this does not appear to return the actual number of years between two dates.
It only subtracts the years and fails to account for the months and days.
This function correctly finds the number of years between two dates:function YearDiff(start,yend) dim yd,md,dd yd = year(yend)-year(start) md = month(yend)-month(start) if md = 0 then dd = day(yend)-day(start) if dd < 0 then yd = yd - 1 end if elseif md < 0 then yd = yd - 1 end if YearDiff = yd end functionq Quarter m Month y Day of year d Day w Weekday ww Week of year h Hour m Minute s Second The firstdayofweek argument can have the following values:
Constant Value Description vbUseSystem 0 Use National Language Support (NLS) API setting. vbSunday 1 Sunday (default) vbMonday 2 Monday vbTuesday 3 Tuesday vbWednesday 4 Wednesday vbThursday 5 Thursday vbFriday 6 Friday vbSaturday 7 Saturday The firstweekofyear argument can have the following values:
Constant Value Description vbUseSystem 0 Use National Language Support (NLS) API setting. vbFirstJan1 1 Start with the week in which January 1 occurs (default). vbFirstFourDays 2 Start with the week that has at least four days in the new year. vbFirstFullWeek 3 Start with the first full weekof the new year.
You can use the DateDiff function to determine how many specified time intervals exist between two dates. For example, you might use DateDiff to calculate the number of days between two dates, or the number of weeks between today and the end of the year.To calculate the number of days between date1 and date2, you can use either Day of year ("y") or Day ("d"). When interval is Weekday ("w"), DateDiff returns the number of weeks between the two dates. If date1 falls on a Monday, DateDiff counts the number of Mondays until date2. It counts date2 but not date1. If interval is Week ("ww"), however, the DateDiff function returns the number of calendar weeks between the two dates. It counts the number of Sundays between date1 and date2. DateDiff counts date2 if it falls on a Sunday; but it doesn't count date1, even if it does fall on a Sunday.
If date1 refers to a later point in time than date2, the DateDiff function returns a negative number.
The firstdayofweek argument affects calculations that use the "w" and "ww" interval symbols.
If date1 or date2 is a date literal, the specified year becomes a permanent part of that date. However, if date1 or date2 is enclosed in quotation marks (" "), and you omit the year, the current year is inserted in your code each time the date1 or date2 expression is evaluated. This makes it possible to write code that can be used in different years.
When comparing December 31 to January 1 of the immediately succeeding year, DateDiff for Year ("yyyy") returns 1 even though only a day has elapsed.
Questions:
I am setting a Default Value in Microsoft Access to =DateDiff("d",[Strike Date],[Purchase Date]) where Strike Date & Purchase Date are Field names in the table. I get an Access error message "could not find field 'Strike Date'."Flak DiNenno of Guardian Life Insurance Company replies: J- I believe this is because since Access 97, you can't update/reference default value/data in a field from another field in that table. Not sure if it works in referencing fields in another table? The work-around would be something like this. 1. Create 3 fields in your table, for: a. [Strike Date] b. [Purchase Date] c. 'DateDifference' - the difference between a & b (where the DateDiff result will be stored) 2. Place bound controls on your form for all 3 fields 3. Set the AfterUpdate events for both the [Strike Date] & [Purchase Date] to run a procedure and place the following code in that procedure: DateDifference=DateDiff("d",[Strike Date],[Purchase Date]) Hope that helps. -Flak