Enter a start date and the years, months, weeks and days to add or subtract. You get both the later date and the earlier date, with the day of the week. To skip weekends, enter a number only in the business days field at the bottom.
Table of Contents
-
What you can do on this page
-
What is this calculation used for?
-
How to Use
-
Formula
-
Symbols and terms
-
Good to know before you start
-
How to calculate it in Excel
-
How to calculate it in Google Sheets
-
How to calculate it in Python
-
How to write it in LaTeX and other math languages (copy and paste)
-
How to have ChatGPT do the calculation
-
DataChef Features
-
Related Features
-
NumberChef Calculators List
What you can do on this page
- Add years, months, weeks and days to a start date, or subtract them, and get both the later date and the earlier date with the day of the week
- Answers questions such as "What is 90 days from today?", "What date is 2 weeks before the deadline?" and "What is the date 1 year and 6 months from now?"
- Also counts business days, skipping Saturdays and Sundays, to find the date a number of business days later or earlier (holidays are not skipped)
- A plain-language explanation of month-end cases such as "What is 1 month after January 31?" and copy-and-paste formulas for Excel, Google Sheets (the EDATE and WORKDAY functions) and Python are all on this page
What is this calculation used for?
An invoice with "Net 30" terms - payment due within 30 days of the invoice date - is exactly a "days later" calculation. For an invoice dated April 15, 2026, the due date 30 days later is Friday, May 15.
Terms such as "due at the end of the following month" use the "months later" calculation. With money, missing a due date by even one day can hurt your credit, so it is safer to check with a calculation than to count on your fingers.
"Ships within 5 business days" for online orders, or "processing takes 5 to 7 business days" at a bank or government office, means counting business days and skipping weekends. If you order on Friday, October 2, 2026, 5 business days later is the next Friday (October 9), after skipping the Saturday and Sunday.
Real deadlines also depend on holidays and company days off, so use this calculator's result (weekends only) as a guide and check your calendar for holidays in between.
Medical schedules such as "follow-up in 2 weeks" or "next dose 4 weeks later" are often given in weeks. 2 weeks later is 14 days later, so it falls on the same weekday as the start date (if June 1 is a Monday, 2 weeks later, June 15, is a Monday too).
Knowing the date when a 28-day supply of medicine runs out, or when to book the next appointment, helps you avoid missed doses and late bookings.
Many leases require written notice one month, or 30 or 60 days, before you move out. If you want to move out on October 31, 2026, one month before is September 30 (September has no 31st, so it is rounded to the end of the month), while 30 days before is October 1.
Notice given at the last minute can cause trouble, so calculate the date first and give yourself some extra time. The wording of your lease decides how the deadline is counted, so check your lease for the exact deadline.
A common way to estimate a due date (Naegele's rule) is 280 days, or 40 weeks 0 days, after the first day of the last menstrual period. For example, if that day is January 1, 2026, 280 days later is October 8.
This is a statistical estimate that assumes a 28-day cycle; the actual due date is set by a doctor based on an ultrasound and other checks. Still, this calculation is a great help for getting a feel for counting weeks of pregnancy from dates.
Plans such as "start practice tests 30 days before the exam" or "register by some number of days before the test date" are "days earlier" calculations. If the exam is on November 15, 2026, 30 days before is October 16.
For big events such as a recital, a wedding or a move, turn each "2 weeks before" or "the day before" deadline into a date on your calendar, and nothing will slip through.
Formula
Symbols and terms
Symbols
| \(D_0\) | D sub 0 | The start date (the date you count from). The small 0 at the lower right is a subscript meaning "number 0 = the starting point". |
| \(D_1\), \(D_2\) | D sub 1, D sub 2 | The resulting dates. \(D_1\) is the date \(n\) days later, and \(D_2\) is the date \(n\) days earlier. |
| \(n\) | n | The number of days to add or subtract. (Example - for 90 days later, \(n = 90\)) |
| \(w\), \(d\) | w, d | The weeks (\(w\)) and the extra days that do not make a full week (\(d\)). For "3 weeks and 4 days", \(w = 3\) and \(d = 4\). |
| \(N\) | N (capital) | The weeks and days turned into a single number of days to add. Found with \(N = 7w + d\). |
| \(y\), \(m\) | y, m | The years (\(y\)) and months (\(m\)) to add or subtract. For "1 year 2 months", \(y = 1\) and \(m = 2\). |
| \(T\) | T | The years and months turned into a single number of months to add. Found with \(T = 12y + m\). |
| \(b\) | b | The number of business days (days counted without weekends). From the first letter of "business day". |
| \(C\), \(W\) | C, W (capital) | When counting business days, the calendar days you actually move (\(C\)) and the weekend days in between (\(W\)). They are related by \(C = b + W\). |
Terms
| corresponding date | The same day number in a later month or year. For January 15, the corresponding date 1 month later is February 15. "Some months later" and "some years later" are counted with this date. In a month without that day, as with January 31, the last day of that month is used instead. |
| end-of-month rounding | When the corresponding date does not exist (for example, "February 31" as 1 month after January 31), the last day of that month (February 28 or 29) is used as the answer. This calculator and the Excel EDATE function both work this way. |
| leap year | A year with a February 29. It usually comes every 4 years, but years divisible by 100 are common years unless they are divisible by 400 (2100 is not a leap year, 2000 was). 1 year after February 29 is February 28, by end-of-month rounding, because the next year has no February 29. |
| business day | A day when businesses and government offices are open. This calculator counts "days that are not Saturday or Sunday" as business days and does not skip holidays, because federal, state and company holidays differ and some move every year. Contracts may define "business day" in their own way, so check the definition for an official deadline. |
| serial number | The running number that Excel and other programs use to store dates. January 1, 1900 is 1, and the number goes up by 1 each day. Because a date is really a number, "date + number of days" is just an addition. |
| 31-day month | A month with 31 days (January, March, May, July, August, October, December). |
| 30-day month | A month with 30 days (April, June, September, November). February alone has 28 days (29 in a leap year). The rhyme "Thirty days hath September, April, June and November" is a well-known way to remember them. |
Good to know before you start
Here is what helps you use the calculation on this page with real understanding, not just by pressing the button.
If you get stuck, going back over these topics is the quickest way forward.
| How the calendar works (Grades 3–4) |
|
| Adding and subtracting with regrouping (Grade 2) |
|
| Multiplication (Grade 3) |
|
| Division with remainders and repeating cycles (Grade 4) |
|
How to calculate it in Excel
| Start date | 2026-01-15 |
| Days n | 10 |
| Date n days later | =B1+B2 |
| Date n days earlier | =B1-B2 |
| Start date | 2026-05-20 |
| Weeks w | 3 |
| Days d | 4 |
| Days to add N | =B2*7+B3 |
| Date N days later | =B1+B4 |
| Date N days earlier | =B1-B4 |
| Start date | 2026-05-10 |
| Years y | 1 |
| Months m | 2 |
| Date y years m months later | =EDATE(B1,B2*12+B3) |
| Date y years m months earlier | =EDATE(B1,-(B2*12+B3)) |
| Start date | 2026-10-02 |
| Business days b | 5 |
| Date b business days later | =WORKDAY(B1,B2) |
| Date b business days earlier | =WORKDAY(B1,-B2) |
| Start date | 2026-05-10 |
| Years | 1 |
| Months | 2 |
| Weeks | 3 |
| Days | 4 |
| Date after adding all | =EDATE(B1,B2*12+B3)+B4*7+B5 |
| Date after subtracting all | =EDATE(B1,-(B2*12+B3))-B4*7-B5 |
As the first table shows, adding or subtracting days is just "=date+days" (the answers in the first table are January 25 and January 5). To add or subtract months, use the EDATE function (=EDATE(start date, months)). It even rounds to the end of the month, when the month has no such day, the same way as this calculator. To go back in time, make the number of months negative.
For business days, use the WORKDAY function (=WORKDAY(start date, business days)), which skips weekends (the answer in the fourth table is October 9). If you give a list of holiday dates as the third argument, it skips those holidays too, so use that when holidays matter.
The fifth table matches the inputs of this calculator, and the answer is August 4, 2027. One thing to note: this calculator adds years and then months, while EDATE adds them all at once, so in rare cases involving a leap day (February 29) the results can differ by 1 day (for example, 1 year 1 month after 2024-02-29 is 2025-03-28 in this calculator but 2025-03-29 with =EDATE(B1,13)).
How to calculate it in Google Sheets
| Start date | 2026-01-15 |
| Days n | 10 |
| Date n days later | =B1+B2 |
| Date n days earlier | =B1-B2 |
| Start date | 2026-05-20 |
| Weeks w | 3 |
| Days d | 4 |
| Days to add N | =B2*7+B3 |
| Date N days later | =B1+B4 |
| Date N days earlier | =B1-B4 |
| Start date | 2026-05-10 |
| Years y | 1 |
| Months m | 2 |
| Date y years m months later | =EDATE(B1,B2*12+B3) |
| Date y years m months earlier | =EDATE(B1,-(B2*12+B3)) |
| Start date | 2026-10-02 |
| Business days b | 5 |
| Date b business days later | =WORKDAY(B1,B2) |
| Date b business days earlier | =WORKDAY(B1,-B2) |
| Start date | 2026-05-10 |
| Years | 1 |
| Months | 2 |
| Weeks | 3 |
| Days | 4 |
| Date after adding all | =EDATE(B1,B2*12+B3)+B4*7+B5 |
| Date after subtracting all | =EDATE(B1,-(B2*12+B3))-B4*7-B5 |
If a result shows up as a number (a serial number), change it to a date with Format > Number > Date in the menu. As in Excel, EDATE can differ from this calculator by 1 day in rare cases involving a leap day.
How to calculate it in Python
from datetime import date, timedelta
import calendar
start = date(2026, 5, 10) # start date
years, months, weeks, days = 1, 2, 3, 4 # years, months, weeks and days to add
def add_months(base_date, month_count):
"""Move ahead by months, rounding to the end of the month when that day does not exist (negative goes back)"""
total_month_index = base_date.year * 12 + (base_date.month - 1) + month_count
year, month_index = divmod(total_month_index, 12)
month = month_index + 1
last_day = calendar.monthrange(year, month)[1]
return date(year, month, min(base_date.day, last_day))
# Add in the order years, months, then weeks and days (make everything negative to subtract)
after = add_months(add_months(start, years * 12), months) + timedelta(days=weeks * 7 + days)
before = add_months(add_months(start, -years * 12), -months) - timedelta(days=weeks * 7 + days)
print(f"{years} y {months} m {weeks} w {days} d later: {after}") # 2027-08-04
print(f"{years} y {months} m {weeks} w {days} d earlier: {before}") # 2025-02-13
def add_business_days(base_date, business_days):
"""Return the date business_days days later, skipping Saturdays and Sundays"""
current = base_date
counted = 0
while counted < business_days:
current += timedelta(days=1)
if current.weekday() < 5: # 0-4 are Monday to Friday
counted += 1
return current
print(f"5 business days after 2026-10-02: {add_business_days(date(2026, 10, 2), 5)}") # 2026-10-09
How to write it in LaTeX and other math languages (copy and paste)
D₁ = D₀ + n, D₂ = D₀ − n
D_1 = D_0 + n, \quad D_2 = D_0 - n
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>D</mi><mn>1</mn></msub><mo>=</mo>
<msub><mi>D</mi><mn>0</mn></msub><mo>+</mo><mi>n</mi>
<mo>,</mo><mspace width="0.7em"/>
<msub><mi>D</mi><mn>2</mn></msub><mo>=</mo>
<msub><mi>D</mi><mn>0</mn></msub><mo>−</mo><mi>n</mi>
</mrow>
</math>
D_1 = D_0 + n, D_2 = D_0 - n
dateAfter = DatePlus[startDate, n]; dateBefore = DatePlus[startDate, -n]
dateAfter := startDate + n; dateBefore := startDate - n;
date_after = start_date + days(n); date_before = start_date - days(n);
D_1 = D_0 + n, D_2 = D_0 - n
N = 7w + d
N = 7w + d
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>N</mi><mo>=</mo>
<mn>7</mn><mi>w</mi>
<mo>+</mo><mi>d</mi>
</mrow>
</math>
N = 7w + d
totalDays = 7*weeks + extraDays
totalDays := 7*weeks + extraDays;
total_days = 7*weeks + extra_days;
N = 7w + d
T = 12y + m
T = 12y + m
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>T</mi><mo>=</mo>
<mn>12</mn><mi>y</mi>
<mo>+</mo><mi>m</mi>
</mrow>
</math>
T = 12y + m
totalMonths = 12*years + months
totalMonths := 12*years + months;
total_months = 12*years + months;
T = 12y + m
C = b + W
C = b + W
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>C</mi><mo>=</mo>
<mi>b</mi>
<mo>+</mo><mi>W</mi>
</mrow>
</math>
C = b + W
calendarDays = businessDays + weekendDays
calendarDays := businessDays + weekendDays;
calendar_days = business_days + weekend_days;
C = b + W
How to have ChatGPT do the calculation
You are a date calculation assistant. Do the following calculations by actually running Python code, and base your answer only on the dates from the execution result (do not answer by mental math or guessing). 1. The date you get by adding "1 year, 2 months, 3 weeks and 4 days" to May 10, 2026, and the date you get by subtracting it. Add in the order years, then months, then weeks and days. Count "months later" by the same day number in the later month, and if that month has no such day, round to the last day of that month. 2. The date 5 business days after Friday, October 2, 2026. Count business days by skipping only Saturdays and Sundays (do not skip holidays). For each, show the code you used and the resulting dates and days of the week.
How to Use
-
1Enter your numbersType the numbers you want to calculate with into the input fields
-
2CalculatePress the "Calculate" button
-
3Check the resultThe result appears on the spot. The same page also explains the idea behind the calculation and the formula
DataChef Features
No technical knowledge required.
Intuitive and user-friendly operation.
Can be used without registering personal information.
Automatic file deletion by clicking "download".
and rapid file conversion.
No attribution required.
No need to contact us for commercial use permission.
