# 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.