Date Add/Subtract Calculator
Pick a start date, choose how much to add or subtract, and get the resulting date instantly. Everything runs in your browser — nothing you enter is ever sent anywhere.
How date add/subtract works
For days and weeks, this tool uses JavaScript's native date rollover directly — adding 7 days to Jan 28 correctly lands on Feb 4, crossing the month boundary exactly as expected. For months and years, native rollover gets more surprising: JavaScript normalizes an invalid date like "Feb 31" forward into March, so a naive "add 1 month" to Jan 31 would land on Mar 3 — not Feb 28. This tool avoids that by resolving the target month first, then clamping the day to the last real day of that month.
Worked example
Start with Jan 31, 2026 and add 1 month. February 2026 has 28 days (2026 isn't a leap year), so the result clamps to Feb 28, 2026 — a Saturday — instead of overflowing to March 3rd. Add 1 month again from Feb 28 and you land on Mar 28, since March 31 days means day 28 is valid without any clamping needed. Subtracting works the same way in reverse: May 31, 2026 minus 1 month clamps to Apr 30, 2026.
Frequently asked questions
What happens when adding a month lands on a day that doesn't exist?
This tool clamps to the last valid day of the target month instead of overflowing into the next one. Jan 31, 2026 plus 1 month lands on Feb 28, 2026 — not Mar 3. JavaScript's built-in date math would silently roll Feb 31 forward into March, which is technically consistent but rarely what "a month later" means when you started at month-end. Subtracting works the same way: May 31 minus 1 month clamps to Apr 30.
Does this account for leap years?
Yes, automatically. The clamp checks the real number of days in the target month for the target year, so Feb 29, 2028 minus 1 year clamps to Feb 28, 2027 (2027 isn't a leap year), while a jump that lands on a leap February keeps the 29th when the start date allows it.
Can I subtract instead of add?
Yes — use the Add/Subtract toggle above the amount field. The unit (days, weeks, months, years) and the clamping rule for months and years work identically in both directions.
Is my date data sent anywhere?
No. The calculation runs with JavaScript's own Date object directly in your browser — nothing you enter is sent to a server, stored, or logged. That's true for every tool on this site.