Calculate an End Date From a Start Date and Duration
By ExcelReady TeamUpdated 7 min read
The short answer
To calculate an end date in Excel, add the duration to the start date. For calendar days, use =B2+C2. For working days that skip weekends, use =WORKDAY(B2,C2), with an optional holiday list. For months or years, use =EDATE(B2,C2), or =EDATE(B2,C2*12) for years. Format the result as a date.
Key takeaways
- Calendar days: start date plus days, =B2+C2. Subtract 1 if the start day counts as day 1.
- Working days: =WORKDAY(B2,C2,holidays) skips Saturdays, Sundays and any dates in the holiday list.
- Months and years: =EDATE(B2,months) keeps the same day of the month, or uses the last day if it doesn't exist.
- If the answer looks like 46113, the cell is formatted as a number. Change it to Short Date.
On this page+
To calculate an end date in Excel, you add the duration to the start date, and the right formula depends on the unit. Plain days need simple addition, working days need WORKDAY, and months or years need EDATE. This guide shows all three on real dates, so you can plan projects, contracts, notice periods and delivery dates without counting on a calendar.
Why you can add days to a date#
Excel stores every date as a whole number: the count of days since 1 January 1900. So 2 March 2026 is stored as 46083, and 3 March 2026 is 46084. Because a date is a number, adding 30 to it moves it 30 days forward.
The cell's number format decides whether you see 46083 or 02/03/2026. The value is the same either way. If you are new to this idea, the date basics lesson walks through it step by step.
All the examples below use a start date of Monday 2 March 2026 in cell B2. Type dates with the DATE function to avoid problems with different regional settings: =DATE(2026,3,2).
How to calculate an end date from a number of days#
To get an end date in calendar days, add the number of days to the start date. With the start date in B2 and 30 in C2:
=B2+C2The result is Wednesday 1 April 2026. Weekends and holidays are counted like any other day.
Think about whether the start day counts. =B2+C2 gives the date 30 days after the start. If the task starts on 2 March and day 1 is 2 March, then day 30 is 31 March. In that case subtract 1:
=B2+C2-1The result is Tuesday 31 March 2026. A hotel stay and a 30-day payment term are usually counted the first way. A 30-day work schedule is usually counted the second way. Pick one rule and use it every time.
For weeks, multiply by 7. A six-week course starting on B2 ends on =B2+6*7, which is Monday 13 April 2026.
How to calculate an end date in working days with WORKDAY#
WORKDAY returns the date a given number of working days after the start, skipping Saturdays and Sundays. The syntax is:
=WORKDAY(start_date, days, [holidays])With the start date in B2 and 10 working days in C2:
=WORKDAY(B2,C2)The result is Monday 16 March 2026. WORKDAY doesn't count the start date. It counts 10 working days after it: 3 to 6 March, 9 to 13 March and 16 March.
Skip public holidays#
Put your holiday dates in a range, for example H2:H5, and add it as the third argument:
=WORKDAY(B2,C2,$H$2:$H$5)If Friday 6 March is in the list, the end date moves one working day later, to Tuesday 17 March 2026. Lock the range with $ (press F4 on Windows or ⌘T on a Mac) so it doesn't move when you fill the formula down.
When the start day counts as day 1#
If work begins on the start date itself, a 10-day task that starts on Monday 2 March finishes on Friday 13 March. Start one day earlier so the first day counts:
=WORKDAY(B2-1,C2)The WORKDAY function guide has more examples, and the article on building a due date formula shows how to use WORKDAY for invoices and tasks.
Different weekend days#
If your weekend is not Saturday and Sunday, use WORKDAY.INTL. Its third argument sets the weekend. For example, =WORKDAY.INTL(B2,C2,7) treats Friday and Saturday as the weekend, and 11 means Sunday only. WORKDAY.INTL works in Excel 2010 and later.
How to calculate an end date in months or years with EDATE#
Use EDATE when the duration is in months, because months have different lengths and adding 30 days is not the same as adding a month. The syntax is:
=EDATE(start_date, months)| Start date | Formula | End date |
|---|---|---|
| 15 Mar 2026 | =EDATE(B2,12) | 15 Mar 2027 |
| 15 Mar 2026 | =EDATE(B2,12)-1 | 14 Mar 2027 |
| 31 Jan 2026 | =EDATE(B2,1) | 28 Feb 2026 |
| 15 Mar 2026 | =EDATE(B2,3*12) | 15 Mar 2029 |
EDATE keeps the same day of the month. When that day doesn't exist, as with 31 February, it uses the last day of the month instead. For years, multiply by 12.
A one-year contract that starts on 15 March 2026 usually ends on 14 March 2027, the day before the anniversary. That is why the second row subtracts 1. Check your own contract rules before you choose. The EDATE function guide covers negative months too, which go back in time.
How to handle durations in different units#
When a list mixes units, store the unit in its own column and pick the formula with IFS or SWITCH. With the number in C2 and the unit (Days, Weeks or Months) in D2:
=SWITCH(D2,"Days",B2+C2,"Weeks",B2+C2*7,"Months",EDATE(B2,C2))SWITCH compares D2 with each unit and returns the matching result. It needs Excel 2019, Excel 2021 or Microsoft 365. In older versions, use nested IF.
Durations in hours work the same way, because one hour is 1/24 of a day. If B2 holds a date and time, =B2+C2/24 adds C2 hours.
Why your end date looks wrong#
Most end-date problems come from formatting or from how the days are counted. Check these:
- The result is a number like 46113. The cell is formatted as General. Choose Short Date in the number format box on the Home tab.
- The answer is one day off. Decide whether the start day counts, then add or subtract 1.
- #VALUE! The start date is text, not a real date. Text dates often sit on the left of the cell. Retype it, or use DATEVALUE to convert it.
- A weekend end date when you wanted working days. You used
+instead of WORKDAY. - 31 January plus one month gives 3 March. You added 31 days, or used DATE with month+1. Use EDATE instead.
Once you have the end date, you can show its weekday with =TEXT(D2,"dddd"), as explained in getting the day name from a date. If you need the next Monday after the end date, see how to find the next weekday date.
Practise it#
Practise WORKDAY and NETWORKDAYS in a live spreadsheet: you type the formula and it checks it instantly. Start with the exercise on this page, which finds the end date of a 10-working-day task, then move on to holiday lists and EDATE.
Try it yourself
This is a live spreadsheet. Type the formula in the green cell and press Enter.
The Design task starts on B2 and takes 10 working days (C2). In D2, use WORKDAY to find the end date, skipping weekends.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | End | ||||
| 2 | |||||
| 3 | |||||
| 4 | |||||
| 5 | |||||
| 6 | |||||
| 7 |
Tip: WORKDAY takes the start date first, then the number of working days.
Practise this in a lesson
Frequently asked questions
How do I calculate an end date from a start date and number of days in Excel?
Add them: =B2+C2, where B2 is the start date and C2 is the number of days. If the start day should count as day 1, use =B2+C2-1.
How do I calculate an end date excluding weekends?
Use WORKDAY: =WORKDAY(B2,C2). It moves forward C2 working days from the start date, skipping Saturdays and Sundays. Add a range of holiday dates as a third argument to skip those too.
How do I add months to a date in Excel?
Use EDATE: =EDATE(B2,6) returns the date six months after B2. If the day doesn't exist in the new month, such as 31 February, EDATE uses the last day of that month.
Why does my end date show as a number?
Excel stores dates as numbers, and the cell is formatted as General or Number. Select the cell and choose Short Date from the number format box on the Home tab.
Does WORKDAY count the start date?
No. WORKDAY counts working days after the start date. If the start day is day 1 of the task, use =WORKDAY(B2-1,C2) instead.