Most of the time we measure age in years. But plenty of situations call for a finer unit. New parents track a baby's age in weeks and months. Milestone hunters want to know the day they turn 10,000 days old. Researchers and clinicians often need an exact day count rather than a rounded year.
Converting between these units looks like simple arithmetic, but the calendar fights back. Months have different lengths, years are not all 365 days, and the "obvious" shortcuts drift. This guide shows you how to calculate age in days, weeks, and months accurately, with worked examples.
Total Days Lived
Total days is the foundation — every other unit is derived from it. It is the count of calendar days from the birth date up to (and usually including) the target date.
The reliable way to compute it is to convert both dates to a serial day number and subtract. Spreadsheets and programming languages do this for you, but conceptually:
total_days = serial(today) − serial(date_of_birth)
You cannot get this right by multiplying years by 365, because leap years add an extra day roughly every four years. Over a 40-year life that is about 10 missing days — enough to throw off a milestone or a medical calculation.
Example. Someone born 2010-03-15, counted on 2026-06-01, has lived 5,922 days. (That spans 16 years, four of which — 2012, 2016, 2020, 2024 — were leap years, so a naive 16 × 365 = 5,840 undercounts by dozens of days.)
Age in Weeks
A week is always exactly 7 days, so weeks are the one clean conversion:
total_weeks = floor(total_days / 7)
leftover_days = total_days mod 7
Using the example above:
5,922 / 7 = 846 weeks, remainder 0
So that person is 846 weeks old exactly. Weeks are the standard unit in pregnancy and early infancy — a "6-week-old" or "milestone at 40 weeks" is unambiguous precisely because the 7-day week never changes length.
Age in Months
Months are where it gets messy, because there are two different things people mean by "age in months."
Meaning 1: Calendar months (the correct one)
This counts how many times the day-of-month has rolled around — the same borrowing logic used for years-months-days age. A baby born on the 15th is "3 months old" on the 15th three months later, regardless of whether those months had 28, 30, or 31 days.
months = (year2 − year1) × 12 + (month2 − month1)
if (day2 < day1) months = months − 1
Example. Born 2025-11-20, on 2026-06-01:
months = (2026 − 2025) × 12 + (6 − 11) = 12 − 5 = 7
day check: 1 < 20 → subtract 1 → 6 months
The baby is 6 calendar months old (plus some extra days). This is what a pediatrician means by "age in months."
Meaning 2: Average months (an approximation)
Sometimes you want a single decimal, like "73.2 months." For that, people divide total days by an average month length:
approx_months = total_days / 30.4375
(30.4375 is 365.25 ÷ 12 — the average days per month including leap years.) This is fine for charts and rough comparisons, but it is not the calendar-month age and can disagree by a day or two near month boundaries.
Why dividing by 30 is wrong
The most common error is total_days / 30. There is no 30-day calendar month on average — the true average is about 30.44 days. Dividing by 30 inflates the month count, and the error grows the older the person is. Always use calendar logic for an exact answer, and 30.4375 only when you explicitly want an averaged decimal.
Putting It Together: One Birth Date, Many Units
For a person born 2000-01-01, calculated on 2026-06-01:
| Unit | Value | How it is derived |
|---|---|---|
| Years, months, days | 26 y, 5 m, 0 d | Borrow-and-subtract calendar method |
| Total months | 317 | 26 × 12 + 5 |
| Total weeks | ~1,378 | total days ÷ 7 |
| Total days | ~9,648 | serial difference (includes 7 leap days) |
| Total hours | ~231,552 | total days × 24 |
All of these describe the same age — they are just different lenses. The age calculator on this site shows every one of these at once, so you do not have to convert by hand.
Milestones Worth Knowing
Because we normally think in years, day- and week-based milestones sneak up on you:
- 1,000 days ≈ 2 years, 9 months
- 10,000 days ≈ 27 years, 4 months
- 20,000 days ≈ 54 years, 9 months
- 1,000 weeks ≈ 19 years, 2 months
- 500 months ≈ 41 years, 8 months
To find the exact calendar date you hit one of these, set the comparison field in the exact age calculator, or use the date difference calculator to measure the gap between two specific dates down to the day.
FAQ
How do I calculate my age in days?
Convert both your birth date and today's date to a serial day number and subtract them — every spreadsheet and programming language can do this. Do not estimate by multiplying years by 365, because leap years add an extra day roughly every four years and the gap compounds over a lifetime.
How many weeks old am I?
Take your total days lived and divide by 7. Weeks are the one exact conversion because a week is always 7 days, with no calendar irregularity. The remainder is the number of extra days beyond the last full week.
Why is dividing days by 30 the wrong way to get months?
Calendar months average about 30.44 days, not 30, so dividing by 30 overstates the month count — and the error grows the older you are. For an exact figure use calendar-month logic; only use 30.4375 (365.25 ÷ 12) when you deliberately want an averaged decimal.
How do I work out a baby's age in months?
Use calendar months: count how many times the birth day-of-month has come around. A baby born on the 15th becomes one month older on the 15th of each month. If today's day-of-month is earlier than the birth day, subtract one from the month count.
When should I use days or weeks instead of years?
Use weeks for pregnancy and early infancy, where small differences matter and the 7-day week is unambiguous. Use total days for milestones (like 10,000 days) and for medical or scientific contexts where an exact count beats a rounded year.
Can I see all these units at once?
Yes. The age calculator displays years, months, and days alongside total months, total weeks, total days, total hours, and total minutes from a single birth date, with leap years handled automatically.