Months are calendar units, not 30-day blocks
Ask how many months lie between two dates and two different questions hide inside the words. One is arithmetic: how many 30-day blocks fit in the span? The other — the one leases, ages, contracts, subscriptions and “how old is the baby” all actually mean — is calendrical: how many times does the same day-of-month come round again? From January 15 to February 15 is one month, all 31 days of it. From January 15 to October 12, the default span on this page, the same day-of-month completes eight times — reaching September 15 — and 27 days remain, so the answer is 8 full months and 27 days, inside a total span of 270 days. This calculator answers the calendar question, and shows the raw day count beside it so the two can never be confused.
How the count is built
The method mirrors how a person counts on a calendar, done exactly. Whole years and months are taken first, by comparing the year and month of the two dates; then the calculator checks whether the end date's day-of-month has actually reached the start date's day-of-month — if it has not, the last month has not completed, so one month is handed back and the leftover days are counted from the date that final full month completed. That anchor date is printed in the step panel: start date, plus the full months, lands on the anchor, and the remaining days run from the anchor to the end date. Anchoring matters at month ends: from January 31, a “month” completes on the last day of February (the 28th, or 29th in a leap year), because February has no 31st — the same clamping rule the Date Calculator uses, applied here so month boundaries behave the way calendar software and courts treat them.
When the month count is the number that decides something
Month counts decide real thresholds. Rental and employment notice periods are written in calendar months, and serving notice on the wrong side of a month boundary moves the end date by weeks. A child's age is reported in months well into the second year — “14 months old” is this exact calculation against a birth date. Subscription and warranty questions (“is it still inside 12 months?”) are month counts, as are loan and tenancy anniversaries, probation reviews, and the “every three months” rhythm of quarterly billing, which is why the stats also carry the full years-months-days breakdown: 1 year, 2 months and 5 days is a more useful sentence than either 14 months or 430 days alone. For spans that are really about working time, switch to the Business Days Calculator, which strips weekends and US holidays out of the same kind of span.
Worked example
From January 15, 2026 to October 12, 2026: the 15th completes in February, March, April, May, June, July, August and September — 8 full months, the last completing on September 15. From September 15 to October 12 is 27 days. Total span: 270 days. A 30-day-block method would have said “9 months”, which is exactly the kind of small wrongness this page exists to prevent.
How to use this calculator
- Enter the start date.
- Enter the end date — order does not matter, the pair is sorted for you.
- Read the headline: full calendar months plus leftover days.
- Check the step panel for the anchor date on which the last full month completed.
- Use the stats for the years-months-days breakdown and the total day count.
The decimal month, and why it is only an approximation
Spreadsheets and statistics sometimes need months as a decimal — a rate per month, an average over a span — and the stats panel offers one: total days divided by 30.436875, the length of an average month (365.2425 days a year, divided by 12). It is labelled approximate because it is one: a span counted this way can disagree with the calendar count by several days, since real months run 28 to 31 days and any short span samples only a few of them. Use the decimal for averages and rates, where small errors wash out, and the calendar count — the headline on this page — for anything with a deadline, a birthday or a legal edge. Knowing which of the two your situation wants is most of the battle; this page refuses to pretend they are the same number.