Date Add/Subtract Calculator

Find the date after adding or subtracting days, weeks, months, and years.

Date Offset

Result

Result date2026-01-11

Month-end dates use date-fns calendar normalization. For example, adding one month to January 31, 2026 returns February 28, 2026.

Pick a start date, choose Add or Subtract, and type whole numbers for years, months, weeks, and days. The calculator walks the calendar in the chosen direction and returns a single resulting date in YYYY-MM-DD form. Mix the four units freely: 1 month plus 2 weeks plus 3 days resolves in one pass. The math respects ISO 8601 and runs in UTC, so a result never shifts because of your local time zone. For working-day arithmetic that skips weekends and holidays use the add business days calculator; for the inverse problem of counting the gap between two known dates, use the days between tool.

Common use cases

  • Promising a calendar-day delivery date. A merchant promises shipment in 30 days from order. Enter the order date, set days to 30, and read the resulting date. Calendar days count weekends, so the answer differs from a working-day promise; pick whichever your terms specify.
  • Closing a real estate deal on a contract clock. A purchase contract closes 1 month and 2 weeks after the binder. Enter the binder date, add 1 month and 2 weeks, and the calculator returns the closing date in one shot. Add a few extra days if your contract carries a buffer.
  • Marking a one-year anniversary. A subscription started 2024-02-29 renews on its first anniversary. Adding 1 year clamps Feb 29 to Feb 28 in 2025, the convention used by date-fns and most billing systems. The next true anniversary lands on the following leap year.
  • Counting backward to find a registration deadline. A conference begins 2026-09-15 and registration closes 6 weeks earlier. Set the start to the event date, switch to Subtract, set weeks to 6, and read the registration cutoff. Negative offsets work the same way through the Subtract toggle.
  • Sizing a 90-day notice window. A lease termination requires 90 days of notice before the move-out date. Enter the move-out date, switch to Subtract, set days to 90, and read the latest day notice can be served. Pair the answer with the weekday lookup to confirm it lands on a business day.

How it works

The calculator parses the start date as a plain YYYY-MM-DD value, multiplies each unit by +1 or -1 according to the Add or Subtract toggle, and hands the result to date-fns. Year and month additions clamp at month-end so Jan 31 plus 1 month returns Feb 28, never March 3. Week and day additions roll forward through the calendar without any clamp. The output is a single ISO date with no time component.

  1. Enter the start date. Pick a date in YYYY-MM-DD form. The browser date picker writes the value for you, or paste any ISO date string. The calculator ignores any time part.
  2. Choose Add or Subtract. Add walks forward through the calendar; Subtract walks backward. Switching the toggle flips every unit at once, so 1 month and 5 days under Subtract is the same as -1 month and -5 days under Add.
  3. Set the four offset fields. Type whole numbers in any combination of years, months, weeks, and days. Leave a field at zero when you do not need it. Presets like 30, 90, and 365 fill the days field for common spans.
  4. Read the resulting date. The Result panel shows the destination date in YYYY-MM-DD form. Cross-check by adding the same offset back in the opposite direction; the calculator and the calendar should agree.

Worked examples

Adding one month to January 31

Enter start 2026-01-31, set Add, months 1, all other fields zero.

Result: The calculator returns 2026-02-28, the last day of February 2026.

February 2026 has 28 days, so the target day-of-month (31) does not exist. date-fns clamps the result to the last valid day of the destination month rather than overflowing into March.

Adding one year to a leap day

Enter start 2024-02-29, set Add, years 1, all other fields zero.

Result: The calculator returns 2025-02-28. The same start with years 4 returns 2028-02-29, the next true leap day.

2025 has no February 29, so the year-add clamps to February 28. Adding four years instead lands on the next leap year and preserves the original day-of-month exactly.

Subtracting three weeks

Enter start 2026-04-27, set Subtract, weeks 3, all other fields zero.

Result: The calculator returns 2026-04-06, a Monday three weeks earlier.

Week subtraction is exact: 21 calendar days back from any date returns the same weekday. The result lands on the same day of the week as the start.

Adding 90 days from today

Enter start 2026-04-27, set Add, days 90, all other fields zero. Or click the 90 days preset.

Result: The calculator returns 2026-07-26, a Sunday roughly three months later.

A 90-day add walks across April, May, June, and most of July. The same offset expressed as 3 months would return 2026-07-27 instead, off by one day; calendar months and 30-day blocks are not equivalent.

Combined offset for a closing date

Enter start 2026-04-27, set Add, months 1, weeks 2, days 3.

Result: The calculator returns 2026-06-13. The four-unit add resolves in a single calculation rather than three sequential ones.

Use the combined form when a contract specifies a layered window like "one month, two weeks, and three business days." For the working-day part of that phrase, swap to the dedicated business-days variant linked above.

Edge cases & gotchas

  • Month-end clamping on year and month adds. When the destination month has fewer days than the start day-of-month, the result clamps to the last valid day. Jan 31 plus 1 month returns Feb 28 in a non-leap year and Feb 29 in a leap year. Mar 31 plus 1 month returns Apr 30. The clamp follows date-fns, which matches Java Time and most spreadsheet libraries; some calendars round forward instead, which is the source of disagreement with other tools.
  • Leap-day rollover on a one-year add. Adding 1 year to Feb 29, 2024 returns Feb 28, 2025 because 2025 has no leap day. Adding 4 years instead returns Feb 29, 2028, the next leap year. This is why some subscription products bill anniversaries as Feb 28 every non-leap year and only return to Feb 29 every fourth year.
  • Zero offset returns the start date unchanged. Leaving every field at zero returns the start date with no shift. The same is true under Subtract. Use this as a sanity check when wiring the form into a larger workflow: the result should equal the input until you type a non-zero offset somewhere.
  • Daylight saving does not affect the result. The calculator emits a date, not an instant. Adding days across a DST boundary still adds the same number of calendar days; the local clock skip or repeat happens inside one of those days but does not change which day the result lands on. The walk runs in UTC and never converts through a wall-clock zone.

Frequently asked questions about Date Add/Subtract Calculator

Why does Jan 31 plus 1 month return Feb 28 instead of March 3?

Month-end clamping. The calculator follows date-fns, which limits the result to the last valid day of the destination month rather than overflowing forward. The convention matches Java Time and most accounting systems. Some other tools roll forward; their answer is March 3 in non-leap years and March 2 in leap years.

Can I mix Add and Subtract in one calculation?

Not through the toggle, which flips every field at once. To express a mixed offset like 1 month forward and 5 days backward, type both values into the unit fields with the desired signs supported by your form, or run two passes: first 1 month forward, then 5 days backward from the intermediate result.

How are leap years handled?

Automatically. A day-add walks the calendar one day at a time, so February 29 in leap years contributes its day to the count. A year-add or month-add that would land on a non-existent Feb 29 clamps to Feb 28, the date-fns convention. The leap-year rule is divisibility by 4 with a centennial exception for years divisible by 100 but not 400.

Does it follow ISO 8601?

Inputs and outputs use YYYY-MM-DD per ISO 8601. ISO 8601 itself does not specify a clamp rule for invalid dates; the calculator picks the date-fns last-day-of-month behavior because it is the most common convention in software libraries and matches how billing systems typically renew anniversaries.

What happens at year boundaries?

The walk crosses December 31 like any other day. Adding 60 days to 2026-12-15 returns 2027-02-13. Year-add operations cross the boundary directly: adding 1 year to 2026-06-15 returns 2027-06-15. No special handling is required at the boundary.

Why does 90 days differ from 3 months?

Calendar months are not 30 days each. A 90-day add walks 90 calendar days; a 3-month add advances the month field by three and keeps the day-of-month constant (clamping at month-end if needed). Starting 2026-04-27, the two land on 2026-07-26 and 2026-07-27 respectively. Match the unit to the contract: "90 days" is days, "3 months" is months.

How is this different from counting the gap between two dates?

This tool answers "what date is N units away?" The inverse problem of counting the gap between two known endpoints is what the days-between calculator handles. Birthdays and elapsed-time questions land at the age calculator instead, which expresses the gap as years, months, and days. Repeating event series belong in recurring dates.

Glossary

Calendar day
A 24-hour period on the civil calendar from midnight to midnight. The calculator counts every calendar day equally, regardless of weekday, holiday, or DST transition.
Month-end clamp
When a year or month add lands on a day that does not exist in the destination month, the result is set to the last valid day of that month. Jan 31 plus 1 month becomes Feb 28 or Feb 29.
Direction
The sign of the walk. Add steps forward through the calendar; Subtract steps backward. The toggle flips every unit at once, never some-forward-some-backward.
Leap day
February 29, present only in years divisible by 4 (and not by 100, unless also by 400). A year-add from a leap day clamps to Feb 28 in non-leap destination years.
Combined offset
A single calculation that mixes years, months, weeks, and days in any combination. The four units resolve in one pass against the start date rather than as four sequential adds.

Related Time Tools