Excel Days Between Dates Calculator
Calculate the exact number of days between two dates with Excel formulas – includes weekends, workdays, and custom date ranges
Complete Guide: How to Calculate Days Between Two Dates in Excel
Calculating the number of days between two dates is one of the most common tasks in Excel, whether you’re tracking project timelines, calculating employee tenure, or analyzing financial periods. This comprehensive guide will teach you all the methods to calculate date differences in Excel, including handling weekends, holidays, and custom date ranges.
Basic Date Calculation
The simplest way to calculate days between dates is using the DAYS function or basic subtraction.
=DAYS(end_date, start_date)=end_date - start_date
Workday Calculations
Exclude weekends and holidays with these functions:
=NETWORKDAYS(start_date, end_date)=NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])
Advanced Techniques
For complex scenarios:
- Calculate years, months, and days separately
- Handle leap years automatically
- Create dynamic date ranges
Understanding Excel’s Date System
Excel stores dates as sequential serial numbers called date-time serial numbers. This system starts counting from January 1, 1900 (which is serial number 1) in Windows Excel, or January 1, 1904 (serial number 0) in Mac Excel. When you enter a date in Excel, it’s converted to this serial number format for calculations.
Key points about Excel’s date system:
- January 1, 1900 = 1 (Windows) or January 1, 1904 = 0 (Mac)
- Each day increments the serial number by 1
- Times are stored as fractional portions of a day (0.5 = 12:00 PM)
- Negative numbers represent dates before the starting point
| Date | Windows Serial Number | Mac Serial Number |
|---|---|---|
| January 1, 1900 | 1 | -1462 |
| December 31, 1999 | 36526 | 35064 |
| January 1, 2000 | 36527 | 35065 |
| January 1, 2023 | 44927 | 43465 |
Basic Methods to Calculate Days Between Dates
Method 1: Simple Subtraction
The most straightforward way to calculate days between two dates is by subtracting the start date from the end date:
- Enter your start date in cell A1 (e.g., 1/15/2023)
- Enter your end date in cell B1 (e.g., 2/20/2023)
- In cell C1, enter the formula:
=B1-A1 - Format the result as a number (it will show the number of days)
This method works because Excel stores dates as serial numbers, so subtraction gives you the difference in days.
Method 2: Using the DAYS Function
Excel’s DAYS function provides a more readable approach:
=DAYS(end_date, start_date)
Example:
=DAYS("2/20/2023", "1/15/2023")
This would return 36, which is the number of days between January 15 and February 20, 2023.
| Function | Syntax | Example | Result |
|---|---|---|---|
| Simple Subtraction | =end_date-start_date | =B1-A1 | 36 |
| DAYS | =DAYS(end_date, start_date) | =DAYS(“2/20/2023”, “1/15/2023”) | 36 |
| DATEDIF | =DATEDIF(start_date, end_date, “d”) | =DATEDIF(“1/15/2023”, “2/20/2023”, “d”) | 36 |
Method 3: Using DATEDIF Function
The DATEDIF function (Date + Dif) is a versatile function that can calculate differences in days, months, or years:
=DATEDIF(start_date, end_date, "d")
Where “d” returns the number of complete days between the dates.
Other useful unit parameters:
- “m” – Complete months between dates
- “y” – Complete years between dates
- “ym” – Months between dates after complete years
- “yd” – Days between dates after complete years
- “md” – Days between dates after complete months and years
Calculating Workdays (Excluding Weekends)
For business calculations, you often need to exclude weekends. Excel provides two main functions for this:
NETWORKDAYS Function
The NETWORKDAYS function calculates working days between two dates, automatically excluding weekends (Saturday and Sunday):
=NETWORKDAYS(start_date, end_date, [holidays])
Example:
=NETWORKDAYS("1/1/2023", "1/31/2023", {"1/2/2023","1/16/2023"})
This calculates workdays in January 2023, excluding New Year’s Day (observed) and MLK Day.
NETWORKDAYS.INTL Function
For more flexibility in defining weekends, use NETWORKDAYS.INTL:
=NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])
The weekend parameter can be:
- 1 – Saturday, Sunday (default)
- 2 – Sunday, Monday
- 3 – Monday, Tuesday
- …
- 11 – Sunday only
- 12 – Monday only
- …
- 17 – Saturday only
Example for a 6-day workweek (Sunday off):
=NETWORKDAYS.INTL("1/1/2023", "1/31/2023", 11)
Handling Holidays in Date Calculations
Both NETWORKDAYS and NETWORKDAYS.INTL accept an optional holidays parameter where you can specify dates to exclude in addition to weekends.
Creating a Holiday List
Best practices for managing holidays:
- Create a separate worksheet named “Holidays”
- List all holidays in a single column (e.g., column A)
- Use named ranges for easy reference:
=NETWORKDAYS(start_date, end_date, Holidays!A:A)
Dynamic Holiday Calculations
For holidays that change dates yearly (like Thanksgiving in the US), you can create formulas:
=DATE(year, 11, CHOOSE(WEEKDAY(DATE(year,11,1)),
26,25,24,23,22,28,27))
This formula calculates US Thanksgiving (4th Thursday in November) for any given year.
Calculating Years, Months, and Days Separately
Sometimes you need to break down the date difference into years, months, and days. The DATEDIF function is perfect for this:
| Unit | Formula | Example | Result | Description |
|---|---|---|---|---|
| Years | =DATEDIF(start, end, “y”) | =DATEDIF(“1/15/2020”, “2/20/2023”, “y”) | 3 | Complete years between dates |
| Months | =DATEDIF(start, end, “m”) | =DATEDIF(“1/15/2020”, “2/20/2023”, “m”) | 37 | Complete months between dates |
| Days | =DATEDIF(start, end, “d”) | =DATEDIF(“1/15/2020”, “2/20/2023”, “d”) | 1133 | Complete days between dates |
| Years and Months | =DATEDIF(start, end, “ym”) | =DATEDIF(“1/15/2020”, “2/20/2023”, “ym”) | 1 | Months remaining after complete years |
| Years and Days | =DATEDIF(start, end, “yd”) | =DATEDIF(“1/15/2020”, “2/20/2023”, “yd”) | 36 | Days remaining after complete years |
| Months and Days | =DATEDIF(start, end, “md”) | =DATEDIF(“1/15/2020”, “2/20/2023”, “md”) | 5 | Days remaining after complete months |
To display the result as “X years, Y months, Z days”, combine these functions:
=DATEDIF(A1,B1,"y") & " years, " & DATEDIF(A1,B1,"ym") & " months, " & DATEDIF(A1,B1,"md") & " days"
Advanced Date Calculation Techniques
Calculating Age
To calculate someone’s age based on birth date:
=DATEDIF(birth_date, TODAY(), "y")
For more precise age including months:
=DATEDIF(birth_date, TODAY(), "y") & " years, " & DATEDIF(birth_date, TODAY(), "ym") & " months"
Calculating Due Dates
Add days to a date (e.g., 30-day payment terms):
=start_date + 30
For workdays only:
=WORKDAY(start_date, 30)
Date Differences in Pivot Tables
To analyze date differences in pivot tables:
- Add your data to the pivot table
- Group dates by days, months, or years
- Add a calculated field for date differences
Common Errors and Troubleshooting
When working with date calculations, you might encounter these common issues:
#VALUE! Errors
Causes and solutions:
- Non-date values: Ensure both arguments are valid dates or references to cells containing dates
- Text that looks like dates: Use
DATEVALUEto convert text to dates - Invalid date ranges: Start date must be before end date
Incorrect Results
Check for:
- Different date systems (1900 vs 1904)
- Time components in your dates (use
INTto remove times) - Hidden characters in date text (clean with
TRIMandCLEAN)
Date Format Issues
Solutions:
- Use
Format Cellsto apply proper date formatting - For text dates, use
DATEVALUEorDATEfunctions - Check your system’s regional date settings
Best Practices for Date Calculations
Follow these professional tips for reliable date calculations:
- Always use cell references: Instead of hardcoding dates in formulas, reference cells for flexibility
- Document your date ranges: Add comments explaining any special date handling
- Handle leap years automatically: Excel’s date system accounts for leap years correctly
- Use named ranges: For holidays or special dates to make formulas more readable
- Validate inputs: Use data validation to ensure proper date entries
- Consider time zones: If working with international dates, document the time zone
- Test edge cases: Verify calculations with dates spanning month/year boundaries
Real-World Applications
Project Management
Calculate:
- Project durations
- Task lead times
- Critical path analysis
- Resource allocation periods
Human Resources
Track:
- Employee tenure
- Vacation accrual periods
- Probation periods
- Benefits eligibility
Finance and Accounting
Calculate:
- Payment terms (30/60/90 days)
- Interest periods
- Depreciation schedules
- Fiscal period comparisons
Manufacturing and Logistics
Manage:
- Lead times
- Delivery schedules
- Inventory turnover
- Warranty periods
Excel vs Other Tools for Date Calculations
| Feature | Excel | Google Sheets | Python (pandas) | JavaScript |
|---|---|---|---|---|
| Basic date subtraction | ✓ | ✓ | ✓ | ✓ |
| Workday calculations | ✓ (NETWORKDAYS) | ✓ (NETWORKDAYS) | ✓ (bdate_range) | ✓ (Custom functions) |
| Holiday exclusion | ✓ | ✓ | ✓ | ✓ |
| Custom weekend definitions | ✓ (NETWORKDAYS.INTL) | ✓ (NETWORKDAYS.INTL) | ✓ | ✓ |
| Large dataset performance | Good | Good | Excellent | Good |
| Integration with other systems | Limited | Good | Excellent | Excellent |
| Learning curve | Low | Low | Moderate | Moderate |
Learning Resources
To deepen your Excel date calculation skills, explore these authoritative resources:
- Microsoft Office Support – Date and Time Functions
- NIST Time and Frequency Division (U.S. Government)
- Stanford CS106 – Working with Dates in Programming
Frequently Asked Questions
Why does Excel show ###### instead of my date?
This typically means the column isn’t wide enough to display the date format. Widen the column or change the date format to something shorter.
How do I calculate the number of weeks between two dates?
Divide the day difference by 7:
=DAYS(end_date, start_date)/7
Can I calculate business hours between two dates?
Yes, but it requires more complex formulas combining date and time functions. You would typically:
- Calculate total hours
- Subtract non-business hours (evenings, weekends)
- Subtract holiday hours
Why is my DATEDIF function not working?
Common issues:
- Make sure you’re using quotes around the unit parameter (“d”, “m”, “y”)
- Check that your start date is before your end date
- Verify both arguments are valid dates or references to date cells
How do I handle time zones in date calculations?
Excel doesn’t natively handle time zones. Best practices:
- Convert all dates to a single time zone before calculations
- Document which time zone your dates represent
- For critical applications, consider using UTC timestamps
Conclusion
Mastering date calculations in Excel is an essential skill for anyone working with temporal data. From simple day counts to complex business day calculations with custom weekends and holidays, Excel provides powerful functions to handle virtually any date calculation scenario.
Remember these key points:
- Use
DAYSfor simple day counts - Use
NETWORKDAYSfor business day calculations - Use
DATEDIFfor breaking down differences into years, months, and days - Always validate your date inputs
- Document any special date handling in your spreadsheets
With the techniques covered in this guide, you’ll be able to handle any date calculation challenge in Excel with confidence and precision.