Free Tools Grid

Days Between Dates

Calculators & Converters

Calculate the exact distance between two dates — days, weeks, business days, hours, minutes, plus a years/months/days breakdown. Swap dates with one click.

Runs entirely in your browser
Loading tool...

About Days Between Dates

Knowing how many days are between two dates comes up constantly: project deadlines, contract terms, age calculations, anniversaries, refund windows, school year planning, deadline reminders. Mental math gets tricky when months span different lengths and leap years sneak in — what looks like "about three months" might be 89 days, 90 days, or 92 days depending on which months.

This calculator uses `date-fns`, the same battle-tested date library most production JavaScript apps use, so leap years, month-length variations, and time-zone-local interpretation are all handled correctly. You get the total days plus a breakdown in weeks, business days (Monday–Friday only), hours, and minutes, alongside a years/months/days view that matches how people naturally describe durations. All calculations happen in your browser; nothing is uploaded.

How to use

  1. 1

    Pick the From date

    Use the From date picker. The default is January 1, 2024 for the first visit.

  2. 2

    Pick the To date

    Use the To date picker, or click Use today to set it to the current date.

  3. 3

    Read the breakdown

    Eight cards show: total days, weeks, business days (Mon–Fri), years/months/days view, hours, minutes, direction (forward or backward), and weekends in the span.

  4. 4

    Swap dates with one click

    If you mixed up From and To, click the swap button between the inputs. The Direction card flips to indicate forward vs backward.

Examples

January 1 to today (assuming May 20)

Output

Total: 140 days · 20 weeks · 99 business days · 0y 4m 19d

A 6-month contract

Input

From: 2025-01-01, To: 2025-07-01

Output

Total: 181 days · 25 weeks · 130 business days · 0y 6m 0d

How many days since you were born

Enter your birth date as From and today as To.

Output

(varies — a 30-year-old has lived ~10,950 days)

Frequently asked questions

Does it count both end dates?+

It counts calendar-day boundaries crossed. Jan 1 to Jan 2 is 1 day (one boundary), not 2. If you want inclusive counting (treating both ends as full days), add 1 to the result.

What's a business day?+

Monday through Friday. Public holidays are not excluded automatically — different countries observe different holidays, so we leave that to your own calendar. The number represents pure weekday count.

How does it handle time zones and daylight saving?+

Dates are interpreted as midnight in your local time zone. Calendar-day counts ignore DST shifts (since we count whole days). Hour counts may differ by ±1 around a DST transition because one day in a DST month is 23 or 25 hours.

Why is the years/months/days breakdown different from total days?+

Years and months have variable length, so the breakdown groups the duration into the most natural chunks: subtract whole years first, then whole months from the remainder, then days from what's left. Total days is the same duration expressed in a single unit.

Can I calculate age with this?+

Yes — set From to your birth date and To to today (or any reference date). The years/months/days view gives you age in the conventional human form. We also have a dedicated Age Calculator if you want a richer age-specific output (next birthday countdown, day of week born, etc.).

Does it work for dates before 1970 or far in the future?+

Yes. JavaScript Date supports a range of about ±271,820 years from 1970. For historical dates before the Gregorian calendar reform (1582), the result uses the proleptic Gregorian calendar (extending Gregorian rules backward), which differs slightly from the Julian calendar that was in actual use.