Audited ·Last updated 31 Jul 2026·5 citations·Tier 1·0 uses

Add Days to a Date Calculator

Add or subtract days, business days, weeks, months or years from any date. Get the exact result date, its weekday and its day-of-year number.

Add Days to Date Calculator

ISO 8601 (YYYY-MM-DD). Any date from year 0001 to 9999.
Direction
Unit
Whole numbers only. Enter a positive amount and pick the direction above.
Result date
Friday, 29 January 2027
The date you land on, written out in full with its weekday. Calendar arithmetic is anchored at UTC midnight so no daylight-saving change can shift it by a day.
ISO 8601 date
2027-01-29
Day of the week
Friday
Net calendar days moved
184 days
Day of the year
29 of 365/366
Weekend days crossed
52 days
What was adjusted
No month-end clamping was needed — day 29 exists in January 2027, so the day-of-month is unchanged. Clamping only bites when the start date is the 29th, 30th or 31st and the target month is shorter.

Background.

This calculator moves a date. Give it a starting date, choose whether to go forward or backward, pick a unit — days, business days, weeks, months or years — and it returns the date you land on, the weekday that date falls on, its ISO 8601 form, its ordinal day-of-year number, the net number of calendar days you actually moved, and how many weekend days sit inside that span. It is the inverse of a date difference calculator: that one takes two dates and tells you the gap, this one takes one date and a gap and tells you the other date.

The reason a page like this exists rather than a mental shortcut is that date arithmetic is not the arithmetic most people assume it is. Adding 90 days to a date is not adding three months, because three months can be 89, 90, 91 or 92 days depending on which three months you cross. Adding one month to the 31st of a month lands on a day that does not exist half the time. Adding a year to 29 February lands on a day that exists only once every four years. Every one of those cases has a convention attached, and this calculator states which convention it uses instead of hiding it.

The month-end convention is the one that surprises people most, so it is worth stating up front, beside the answer rather than buried. When the day-of-month does not exist in the target month, the result is clamped back to the last day of that month: 31 March plus one month is 30 April, 31 January plus one month is 28 February (29 February in a leap year), and 29 February plus one year is 28 February. That is the rule used by java.time in Java, by relativedelta in Python's dateutil, and by most database engines, and it is the closest thing to a standard that exists — ISO 8601 defines how to write dates, not how to add months to them. One consequence follows directly and catches people out: month arithmetic done this way is not reversible. Add a month to 31 August and you get 30 September; subtract a month from 30 September and you get 30 August, not the 31st you started from. The calculator tells you on the face of the result whenever clamping has been applied, so you are never quietly handed a date that has silently lost a day.

A second consequence is that the offset is applied once, from the original date, not stacked one unit at a time. Two months from 31 January is 31 March, because March has a 31st. One month from 31 January, then another month from that result, is 28 March. Both answers are defensible; they are simply answers to different questions. This calculator always answers the first one, which is what a contract that says 'two months from signature' means.

Business-day mode counts Monday to Friday and skips Saturday and Sunday. It does not know about public holidays, and there is no country in which weekends alone are a complete answer for a legal deadline. If you are counting a court filing window, a statutory notice period, a probation period or a payment term, you have to remove the holidays your jurisdiction recognises as well — and you should check first whether the rule you are working to counts calendar days rather than business days at all, because many do. The calculator says this beside the result rather than hiding it in an FAQ, because a deadline is exactly the kind of number a reader trusts before they open an accordion.

Everything is computed at UTC midnight on the proleptic Gregorian calendar. Anchoring in UTC matters because a naive local-time implementation adds or removes an hour twice a year at the daylight-saving transitions, and an off-by-one hour at midnight is an off-by-one day in the answer. The proleptic Gregorian part matters only for very old dates: the modern leap-year rule is projected backwards past 1582, which is mathematically consistent and is what essentially every piece of date software does, but it is not the calendar that was actually in civil use in, say, England in 1700.

What is add days to date calculator?

Date offset arithmetic is the operation of moving a calendar date forward or backward by a stated quantity of a stated unit. It splits cleanly into two families that behave very differently. Days and weeks are exact: a week is always seven days, so adding weeks is adding a multiple of seven days and nothing can go wrong. Months and years are not exact, because months have between 28 and 31 days and years have 365 or 366, so month and year arithmetic operates on the calendar fields themselves — increment the month number, keep the day number if it exists, and clamp it back to the end of the month if it does not. Business days are a third family again: they are days, but the walk skips any day that falls on a Saturday or a Sunday, which means the answer depends on the weekday your start date happens to fall on. All three families are exposed here as one unit selector, with the net calendar days moved reported for every one of them, so you can always see how a 'six month' answer translates into a real day count.

How to use this calculator.

  1. Enter the start date. It is written and read as ISO 8601 (YYYY-MM-DD), so 2026-07-29 means 29 July 2026 with no transatlantic ambiguity.
  2. Choose Add to move forward in time or Subtract to move backward. Always enter the amount as a positive number and let this selector carry the sign.
  3. Choose the unit. Use Days for an exact count, Weeks when the answer should land on the same weekday, Months or Years when you are working to a calendar milestone such as a contract term, and Business days when weekends must not count.
  4. Enter how many. Whole numbers only, up to 200,000 of any unit.
  5. Read the result date and its weekday, and check the 'What was adjusted' line — it tells you whether the day-of-month was clamped to a month end, or, in business-day mode, reminds you that public holidays were not removed.
  6. Use the net calendar days figure to sanity-check a month-based answer, and the day-of-year figure when you need the ISO ordinal date form.

The formula.

days / weeks: result = start + s·n·k months / years: (y,m) = (y,m) + s·n, d = min(d, lastDayOf(y,m))

Days and weeks are pure addition. The start date is converted to a count of milliseconds since the Unix epoch at UTC midnight, the offset in days is multiplied by 86,400,000 and added, and the result is converted back to calendar fields. Because both ends of that conversion are UTC, no daylight-saving transition can push the result across a midnight boundary. A week is exactly seven days, so weeks are computed as 7n days rather than by any separate calendar walk.

Months and years work on the calendar fields instead, because there is no fixed number of days in a month to add. The month index is converted to a single running count, y·12 + (m−1), the signed offset is added to that count, and the result is converted back to a year and a month. Years use the same path with the offset multiplied by twelve, which is why a year shift and a twelve-month shift always agree exactly. The day-of-month is then carried across unchanged if the target month is long enough to contain it, and clamped down to the last day of the target month if it is not — 31 March plus one month gives an invalid 31 April, so 30 April is returned. Because the offset is added to the running month count in a single step, two months from 31 January is 31 March rather than the 28 March you would get by applying one month twice.

Business days cannot be computed in closed form from the amount alone, because the answer depends on which weekday the start date falls on and on how many weekends the span happens to contain. The module walks one calendar day at a time in the chosen direction and decrements the remaining count only when it lands on a Monday through Friday, which is why a Friday plus one business day is the following Monday — three calendar days later, with two weekend days skipped.

The supporting figures are read off the result. Net calendar days is the signed difference between the two UTC midnights divided by 86,400,000. Day-of-year is the count of days from 1 January of the result's own year, so 1 January is day 1 and 31 December is day 365 or 366. Weekend days crossed counts Saturdays and Sundays over the half-open interval that runs from the earlier date up to but not including the later one — the same interval convention the date difference calculator uses for its business-day count, so the two pages can never disagree with each other.

A worked example.

Example

Ninety days from Wednesday 29 July 2026 is Tuesday 27 October 2026. Working it through by hand: July has 31 days, so two of the ninety are used up reaching 31 July; August takes 31 more (33 used) and September another 30 (63 used); the remaining 27 land on 27 October. The calculator returns 2026-10-27 as the ISO date, Tuesday as the weekday, 90 as the net calendar days moved, 300 as the day of the year, and 26 as the number of weekend days crossed. The day-of-year figure is a useful self-check: 29 July is day 210 of 2026, and 210 + 90 = 300, which is exactly 27 October. The weekend count comes from twelve whole weeks inside the span, contributing 24 Saturdays and Sundays, plus one more Saturday (24 October) and Sunday (25 October) in the six-day remainder. Note what ninety days is not: it is not three months. Three months from 29 July 2026 is 29 October 2026, two days later than the ninety-day answer, because July, August and October each have 31 days. A contract that says 'within 90 days' and a contract that says 'within three months' have different deadlines, and this is the page that shows you the gap.

amount90
unitdays
start Date2026-07-29
directionadd

Frequently asked questions.

What date is 90 days from today?
Enter today's date as the start date, leave the direction on Add, set the unit to Days and the amount to 90. The calculator returns the exact date, its weekday and its ISO form. Worked from 29 July 2026, ninety days lands on Tuesday 27 October 2026. Be careful not to treat that as 'three months' — three months from the same start date is 29 October 2026, two days later, because the three months you cross happen to include two 31-day months.
Why is 31 January plus one month 28 February rather than 3 March?
Because month arithmetic works on the calendar fields, not on a fixed number of days. The month number is incremented and the day number is kept — and when the day number does not exist in the target month, it is clamped back to the last day that does. This is the convention used by java.time in Java ('adjust the day-of-month to the last valid day if necessary'), by relativedelta in Python's dateutil ('if the result falls on a day after the last one of the month, the last day of the month is used instead') and by most SQL databases. The alternative — treating a month as 30 or 30.44 days — gives answers that drift away from the calendar and would make 'the 15th of next month' impossible to express.
Why does subtracting the same number of months not bring me back to where I started?
Because clamping loses information. Add one month to 31 August and you get 30 September, since September has no 31st. Subtract one month from 30 September and you get 30 August — the 31 is gone, and nothing in the result records that it was ever there. This is a genuine property of calendar month arithmetic, not a defect in the calculator, and it is why the result panel tells you explicitly whenever clamping was applied. If you need reversibility, work in days: day arithmetic always round-trips exactly.
Is two months from 31 January the same as one month applied twice?
No, and the difference is three days. Two months applied in one step from 31 January 2003 gives 31 March 2003, because March has a 31st. One month applied twice gives 28 February and then 28 March. This calculator always applies the offset once, from the date you entered, which matches both java.time and dateutil and matches what a contract term such as 'two months from signature' is normally read to mean. If you specifically need the stacked interpretation, run the calculator twice and feed the first result back in as the start date.
Does the business-day mode account for public holidays?
No. It skips Saturdays and Sundays and nothing else, and the result panel says so beside the answer rather than hiding it here. There is no jurisdiction where weekends alone give a correct legal deadline: US federal holidays, UK bank holidays, Kenyan public holidays and every other national list move the answer, and some of them move it by several days around Christmas or Easter. Use this mode for rough scheduling, then remove your own holiday list. The business days calculator on this site does exclude US federal holidays when you count between two known dates, and is the better tool once you know both ends.
Should I count in calendar days or business days for a legal deadline?
That is decided by the rule you are working to, not by you, and the two answers can differ by more than a week over a long span. Many procedural rules count calendar days but roll a deadline that lands on a weekend or holiday forward to the next working day; others count working days from the start; others count 'clear days', which excludes both the first and the last day. Read the rule before you pick a mode, and treat any answer here as a planning figure rather than as legal advice.
What does the day-of-year number mean?
It is the ordinal position of the date within its own calendar year — 1 January is day 1, 31 December is day 365, or day 366 in a leap year. It is the DDD field of the ISO 8601 ordinal date form YYYY-DDD, so 27 October 2026 can be written 2026-300. Aviation, meteorology, agronomy and satellite operations all use ordinal dates because they make day counting inside a year trivial, and the same value appears as %j in the POSIX strftime format string.
How are leap years handled?
By the full Gregorian rule, not by a shortcut. A year is a leap year if it is divisible by 4, except century years, except century years divisible by 400. So 2024 and 2000 are leap years, 2100 and 1900 are not. That matters in three places on this page: day counts across a 29 February, the day-of-year figure reaching 366, and the clamping of 29 February plus one year down to 28 February. All three are covered by the test suite, including the 1900 and 2000 century cases.
Does my time zone or daylight saving affect the answer?
No. Every date is handled as a UTC midnight instant, so no local clock change can move the result across a day boundary. This is a deliberate choice: a naive local-time implementation gains or loses an hour at each daylight-saving transition, and an hour lost at midnight silently becomes a whole day lost in the answer. The trade-off is that the calculator works on calendar dates only — if you need hours and minutes, use the countdown timer or the time duration calculator instead.
How far back and forward does it go?
Years 0001 through 9999, with a maximum offset of 200,000 units in any single calculation. Anything that would land outside that range is refused rather than silently wrapping to a wrong answer. Dates before 1582 are computed on the proleptic Gregorian calendar — the modern rule projected backwards — which is what virtually all date software does but is not the calendar that was in civil use at the time in most of Europe, so treat very old dates as arithmetic rather than as history.

References& sources.

  1. [1]International Organization for Standardization, ISO 8601-1:2019 — Date and time: representations for information interchange, Part 1: Basic rules. Source of the YYYY-MM-DD calendar date form used for every date on this page and of the YYYY-DDD ordinal date form reported as the day-of-year output. Full text is a purchased standard; the abstract and scope are open.
  2. [2]Oracle, Java SE API documentation — java.time.LocalDate.plusMonths and plusYears. Defines the month-end clamping rule this calculator implements: 'Add the input months to the month-of-year field; check if the resulting date would be invalid; adjust the day-of-month to the last valid day if necessary', illustrated with 2007-03-31 plus one month giving 2007-04-30 and 2008-02-29 plus one year giving 2009-02-28.
  3. [3]python-dateutil documentation — relativedelta. Independent confirmation of the same clamping rule: 'If the result falls on a day after the last one of the month, the last day of the month is used instead', with date(2003, 1, 31) + relativedelta(months=+1) returning 2003-02-28 and date(2003, 1, 31) + relativedelta(months=+2) returning 2003-03-31 — the non-associativity this calculator reproduces.
  4. [4]The Open Group, POSIX.1-2017 Base Specifications — strftime. Defines conversion specification %j as 'the day of the year as a decimal number [001,366]', the same ordinal day-of-year value this calculator reports.
  5. [5]Internet Engineering Task Force, RFC 3339 — Date and Time on the Internet: Timestamps. The internet profile of ISO 8601; the basis for handling every date as a UTC-anchored instant so that daylight-saving transitions cannot move a calendar date.

In this category

Embed

Quanta Pro

Paid features are coming later.

  • All 977 calculators remain free
  • No billing is enabled
Coming soon