InfyCalculator
📅

Add Months to a Date (or Subtract Them)

Add or subtract months (plus optional years and days) from a date, with a choice of month-end rule (Jan 31 + 1 month = Feb 28), weekend adjustment and a schedule of dates every N months.

Start date
Months
Direction
Also add years
Also add days
When the day does not exist in the target month
If the result falls on a weekend
Schedule rows
Loading calculator…

How it works

target month = (year × 12 + month) ± N, split back into a year and month · day = start day, or the last day of the target month if the start day does not exist there · then ± extra days and optional weekend adjustment

Adding months works on the calendar month, not on a fixed number of days, so one month after the 15th is always the 15th of the next month, whether that is 28 or 31 days later. The only question is what to do when the start day does not exist in the target month. The default, used by Excel’s EDATE, Java’s plusMonths and most loan and lease contracts, moves to the last day of that month: January 31 + 1 month = February 28 (29 in a leap year). Under More options you can pick two other conventions. “Keep end of month” treats a month-end start as month-end every time, so February 28 + 1 month = March 31; bond and payment schedules often use this rule. “Roll the extra days over” is what a JavaScript Date or a PHP strtotime call does: January 31 + 1 month becomes March 3 in a common year. You can also add whole years and extra days, move a weekend result to a business day, and list the date every N months, which is handy for a payment, subscription or medication schedule.

Worked example

Add 3 months to January 31, 2026: the target month is April 2026, which has 30 days, so day 31 becomes Thursday, April 30, 2026. That is 89 days later (12 weeks, 5 days). The schedule shows the dates every 3 months: April 30, July 31 and October 31, 2026, then January 31, 2027. Adding 1 month instead gives February 28, 2026, because 2026 is not a leap year.

Sources: Microsoft Support: EDATE function · Oracle Java SE 8: LocalDate.plusMonths (month-end adjustment) · Calculator.net: Date calculator

Frequently asked questions

What is January 31 plus one month?

February 28, or February 29 in a leap year, under the usual rule that moves to the last day of a shorter month. Some software rolls the extra days over instead and returns March 3 (or March 2 in a leap year).

Is adding 3 months the same as adding 90 days?

Not always. Three months after January 15 is April 15, which is 90 days later in a common year and 91 in a leap year. If a contract says a number of days, add days instead of months.

How do I add months in Excel or Google Sheets?

Use =EDATE(start_date, months). A negative number of months goes backwards, and a fractional number of months is truncated. EDATE gives the same result as this calculator’s default month-end rule.

Why does the schedule return to the 31st?

Every row is counted from the original start date. Chaining month by month would get stuck on the 28th after February; counting from the start keeps the 31st in every month that has one.

Can I go backwards?

Yes. Choose “Subtract” and the months, years and days are all taken away, with the same month-end rule.

Related calculators

This calculator is for educational purposes. Double-check important results before acting on them.