# DateDiff Function

Updated: August 2009

Returns the number of intervals between two dates.

DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])

The *interval* argument can have the following values:

Setting |
Description |
---|---|

yyyy |
Year |

q |
Quarter |

m |
Month |

y |
Day of year (same as Day) |

d |
Day |

w |
Weekday |

ww |
Week of year |

h |
Hour |

n |
Minute |

s |
Second |

The *firstdayofweek* argument can have the following values:

Constant |
Value |
Description |
---|---|---|

vbUseSystemDayOfWeek |
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 week of 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.

If date1 refers to a later time than date2, the **DateDiff** function returns a negative number.

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 full 7-day periods between date1 and date2.

When *interval* is Week ("ww"), however, **DateDiff** returns the number of Sundays that occur starting one day after date1 through date2. The date1 parameter is not counted if it is a Sunday, but date2 is counted if it is a Sunday.

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.

The following example uses the **DateDiff** function to display the number of days between a given date and today:

Function DiffADate(theDate) DiffADate = "Days from today: " & DateDiff("d", Now, theDate) End Function