Date Add/Subtract Calculator

Add or subtract days, weeks, months, or years from any date to instantly find a future or past date. The calculator shows the resulting date in full format, the day of the week, ISO date string, and the total number of days from the start — handling leap years and month-length variations automatically.

Frequently Asked Questions

How do I add days to a date?

To add days to a date, enter the start date, type the number of days you want to add, select 'Days' as the unit, and click Add. The calculator instantly shows the resulting date with the day of the week. For example, adding 30 days to January 1, 2026 gives January 31, 2026 (a Saturday).

What date is 30 days from today?

Use this Date Add/Subtract Calculator: set the start date to today, enter 30 in the amount field, select Days, and click Add. The result shows the exact date 30 days from now along with the day of the week.

How do I subtract days from a date?

Enter your start date, type the number of days to subtract, select 'Days' as the unit, and click Subtract. The calculator finds the past date accurately, accounting for varying month lengths and leap years.

What happens when you add 1 month to January 31?

Adding 1 month to January 31 would land on February 31, which does not exist. The calculator uses JavaScript's native date handling, which rolls the overflow into the next month — so January 31 + 1 month becomes March 3 (or March 2 in a leap year).

How do I find a date 90 days from now?

Set the start date to today's date, enter 90 in the amount field, select Days from the unit dropdown, and click Add. The calculator accounts for month lengths and leap years to give the exact date 90 calendar days from now.

What is the difference between adding days and adding months?

Adding days always advances the calendar by a fixed number of days (e.g., +30 days is always 30 days). Adding months advances by calendar months, which vary in length (28–31 days). Adding 1 month to January 15 gives February 15, but adding 31 days gives February 15 only in January (a 31-day month).

How are leap years handled when adding years to a date?

When you add years to a date, the calculator automatically accounts for leap years. The only edge case is February 29 (leap day): adding 1 year to Feb 29, 2024 would land on Feb 29, 2025 — but 2025 is not a leap year, so the result is March 1, 2025.

Can I calculate a date in the past by subtracting?

Yes. Select Subtract, enter the amount and unit, and the calculator finds the past date. For example, subtracting 6 months from December 31, 2026 gives June 30, 2026. You can subtract days, weeks, months, or years.

What is a Date Add/Subtract Calculator?

A date add/subtract calculator lets you quickly find a future or past date by adding or subtracting a specific number of days, weeks, months, or years from any starting date. Whether you need to calculate a project deadline 90 days from now, find the date 6 months before an anniversary, or figure out what day falls 52 weeks from today, this tool gives you an instant answer along with the day of the week and ISO date string.

How to Add Days to a Date

To add days to a date manually, start from your chosen date and count forward through the calendar, taking into account the varying lengths of each month and whether the year is a leap year.

  1. Enter your start date in the date picker above
  2. Type the number of days (or weeks, months, years) you want to add
  3. Select Days as the unit from the dropdown
  4. Click Add to calculate the future date
  5. The result shows the full date, day of the week, and ISO format

Example: Adding 45 days to January 20, 2026 means counting 11 remaining days in January, 28 days in February (2026 is not a leap year), and 6 more days into March — giving March 6, 2026 (a Friday).

Month Addition Edge Cases

Adding months to a date is more complex than adding days because months have different lengths. The most common edge case is month overflow: adding one month to January 31 would land on February 31, which does not exist. JavaScript's built-in Date object handles this by rolling over into the next month — so January 31 + 1 month becomes March 3 (or March 2 in a leap year).

Start Date+ MonthsResult
Jan 31, 2026+1Mar 3, 2026 (overflow)
Jan 31, 2024+1Mar 2, 2024 (leap year overflow)
Jan 30, 2026+1Mar 2, 2026 (Feb has 28 days)
Jan 15, 2026+1Feb 15, 2026 (no overflow)

If you need to always land on the last day of the resulting month (e.g., Jan 31 + 1 month = Feb 28), you would need a custom clamping function. This calculator uses JavaScript's native overflow behavior, which is standard across date libraries.

Leap Year Handling

A leap year has 366 days with February containing 29 days instead of 28. When you add days, weeks, or years to a date, the calculator automatically accounts for leap years so you always get the correct result.

  • A year is a leap year if it is divisible by 4 (e.g., 2024, 2028)
  • Century years (divisible by 100) are not leap years, e.g., 1900, 2100
  • Exception: years divisible by 400 are leap years, e.g., 2000, 2400

Leap year example: Adding 1 year to February 29, 2024 (a leap day) would normally land on February 29, 2025 — but 2025 is not a leap year, so JavaScript rolls over to March 1, 2025.

Common Use Cases

Use CaseExample
Project deadlineToday + 90 days
Warranty expiryPurchase date + 1 year
Trial period endSign-up date + 30 days
Contract notice periodToday + 2 weeks
Medical follow-upAppointment + 6 weeks
Subscription renewalStart date + 1 month
Past date lookupToday - 6 months

How the Calculator Works

The calculator uses JavaScript's native Date object for all arithmetic:

  • Days: Calls setDate(getDate() + n), which automatically rolls over month and year boundaries
  • Weeks: Multiplies the week count by 7 and uses the same day offset logic
  • Months: Calls setMonth(getMonth() + n), with native overflow handling for short months
  • Years: Calls setFullYear(getFullYear() + n), with leap day overflow for Feb 29

The "days from start" figure is calculated by dividing the millisecond difference between the result date and start date by 86,400,000 (milliseconds per day).

Related Tools