# Visual Basic for Applications Reference

# DateDiff Function

Returns a **Variant** (**Long**) specifying the number of time intervals between two specified dates.

**Syntax**

**DateDiff( interval, date1, date2**[

*[*

**, firstdayofweek****,**]]

*firstweekofyear***)**

The **DateDiff** function syntax has these named arguments:

Part |
Description |

interval |
Required. String expression that is the interval of time you use to calculate the difference between and date1.date2 |

, date1date2 |
Required; Variant (Date). Two dates you want to use in the calculation. |

firstdayofweek |
Optional. A constant that specifies the first day of the week. If not specified, Sunday is assumed. |

firstweekofyear |
Optional. A 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. |

**Settings**

The * interval*argument has these settings:

Setting |
Description |

yyyy | Year |

q | Quarter |

m | Month |

y | Day of year |

d | Day |

w | Weekday |

ww | Week |

h | Hour |

n | Minute |

s | Second |

The * firstdayofweek* argument has these settings:

Constant |
Value |
Description |

vbUseSystem |
0 | Use the 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 |

Constant |
Value |
Description |

vbUseSystem |
0 | Use the NLS API setting. |

vbFirstJan1 |
1 | Start with week in which January 1 occurs (default). |

vbFirstFourDays |
2 | Start with the first week that has at least four days in the new year. |

vbFirstFullWeek |
3 | Start with first full week of the year. |

**Remarks**

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

*, you can use either Day of year ("y") or Day ("d"). When*

**date2***is Weekday ("w"),*

**interval****DateDiff**returns the number of weeks between the two dates. If

*falls on a Monday,*

**date1****DateDiff**counts the number of Mondays until

*. It counts*

**date2***but not*

**date2***. If*

**date1***is Week ("ww"), however, the*

**interval****DateDiff**function returns the number of calendar weeks between the two dates. It counts the number of Sundays between

*and*

**date1***.*

**date2****DateDiff**counts

*if it falls on a Sunday; but it doesn't count*

**date2***, even if it does fall on a Sunday.*

**date1**If * date1* refers to a later point in time than

*, the*

**date2****DateDiff**function returns a negative number.

The * firstdayofweek* argument affects calculations that use the "w" and "ww" interval symbols.

If * date1* or

*is a date literal, the specified year becomes a permanent part of that date. However, if*

**date2***or*

**date1***is enclosed in double quotation marks (" "), and you omit the year, the current year is inserted in your code each time the*

**date2***or*

**date1***expression is evaluated. This makes it possible to write code that can be used in different years.*

**date2**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.

** Note** For

*and*

**date1***, if the*

**date2****Calendar**property setting is Gregorian, the supplied date must be Gregorian. If the calendar is Hijri, the supplied date must be Hijri.