# 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 thesenamed 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. If**

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

*date1***, the**

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

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

*firstdayofweek***or**

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

*date2***or**

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

**or**

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

**Note** For ** date1** and

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

## Example

This example uses the **DateDiff** function to display the number of days between a given date and today.

```
Dim TheDate As Date ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg
```