Date difference calculator
Pick two dates and get the gap every way you might need it: days, weeks and days, months and days, years.
Choosing the right convention before you count
Nearly every argument about "how many days" is really an argument about whether the last day counts, so settle that before reading the number. Exclude the end date for elapsed time: how long since an event, days between two payments, the age of an invoice. Include it for durations where the final day is lived through: a rental period, a course of medication, days of a trip. Contract deadlines phrased "within 30 days" usually exclude the trigger date and include the final day, which matches this calculator's exclusive setting counted from the trigger. When money rides on the interpretation, the contract's own definition beats any convention.
The three secondary readouts are formats for different audiences. Weeks-plus-days is the native language of pregnancy tracking and training plans. Months-plus-days matches how leases and probation periods are written. The years breakdown is for tenure and anniversaries. They all describe the same gap, but quoting the format your document uses avoids a conversion argument later.
One convenience worth knowing: enter the dates in either order. The calculator swaps them for you and notes that it did, so a backwards entry cannot produce a wrong sign or a silent zero.
A project timeline, worked
A contract signed March 15, 2026 with delivery July 22, 2026, end date excluded. March 15 to July 15 spans four full months of 31, 30, 31, and 30 days, totaling 122, plus seven more days to July 22 gives exactly 129 days. The readouts translate that as 18 weeks 3 days, and 4 months 7 days. Flip the toggle to include the end date and the count becomes 130, which is the number you would bill for if the delivery day itself is a working day. The month figure stays 4m 7d either way, since the toggle only affects the day count.
How the counting works
The day count is a true calendar subtraction between the two dates, not years times 365, so leap days are automatically included whenever February 29 falls inside the span. The weeks readout is that day count divided by seven with the remainder shown. Months are counted as full calendar months first, using a clamped anchor so that a start date late in a month cannot overshoot into a phantom day, and the leftover days are measured from the last clean month boundary. This clamping is why January 31 to March 1 reads as 1 month 1 day rather than something nonsensical: February simply has no 31st, and the anchor sticks to February's real last day.
What a date gap cannot tell you
This is whole-day arithmetic on calendar dates. Hours and time zones do not exist here, so an event at 11 pm and one at 1 am two nights later count the same as any other two-day gap. Business rules are also out of scope: weekends, public holidays, and settlement-day conventions need the business days calculator instead. And because months vary in length, two spans that both read "3 months 5 days" can contain different numbers of actual days; when precision matters, trust the day count and treat the month figure as a label.
Frequently asked questions
Is the end date included in the count?
By default no: Monday to Friday is 4 days, the standard "days between" convention. Toggle "include end date" to count it, which gives 5, the convention for durations like hotel nights counted per day.
How are months counted when the dates do not line up?
Full calendar months are counted first, then the leftover days. January 31 to March 1 is 1 month and 1 day, because February has no 31st.
Do leap years affect the result?
The day count is exact regardless of leap years, since it comes from actual calendar dates rather than multiplying years by 365.