Age in Weeks Calculator
Weeks are the natural unit for early childhood and for anything measured against a schedule. Paediatric guidance, developmental milestones and parental leave are all specified in weeks, because at that stage a month is too coarse.
The Arithmetic Is Clean
Unlike months, a week is always exactly seven days. Age in weeks is the day count divided by seven — no calendar irregularity, no leap-year adjustment, no month-length ambiguity.
| Age | Weeks (approximate) |
|---|---|
| 6 months | 26 |
| 1 year | 52 |
| 2 years | 104 |
| 5 years | 261 |
| 18 years | 939 |
| 40 years | 2,087 |
Where Weeks Are the Official Unit
- Infant development. Milestones are published in weeks through the first year.
- Vaccination schedules, specified at 6, 10 and 14 weeks in many countries.
- Corrected age for premature babies. A baby born at 32 weeks is assessed against a
- Parental leave, almost always legislated in weeks.
- Gestational age, counted in weeks and days from the last menstrual period.
The 52-Week Year Is an Approximation
A common year is 52 weeks and 1 day; a leap year is 52 weeks and 2 days. This is why a birthday moves forward one weekday each year and two after a leap day — and why "52 weeks from today" is not the same date next year.
ISO Weeks Are a Different Thing
The ISO 8601 week number, which numbers weeks 1–53 within a calendar year, is unrelated to counting weeks of age. ISO weeks start on Monday and a year can contain 53 of them, which breaks any arithmetic that assumes 52.
The Traps in Date Arithmetic
Months are not 30 days. Adding one month to 31 January has no correct answer, and every library picks differently — 28 February, 2 March or an error. Decide which your business needs before the edge case decides for you.
Days are not always 86,400 seconds. Daylight saving makes one day 23 hours and another
25. Adding n * 86400000 milliseconds drifts by an hour twice a year, which is enough to
move a date across midnight and return an answer one day out.
``javascript
// Correct — the Date object normalises overflow and handles DST
const addDays = (date, days) => {
const result = new Date(date);
result.setDate(result.getDate() + days);
return result;
};
// Correct — calendar days, unaffected by DST or time of day
const daysBetween = (a, b) => {
const utc = (d) => Date.UTC(d.getFullYear(), d.getMonth(), d.getDate());
return Math.round((utc(b) - utc(a)) / 86400000);
};
`
Months are zero-indexed in JavaScript. new Date(2026, 0, 1) is January. new
Date(2026, 12, 1) is January 2027, silently.
Parsing is not portable. new Date("2026-08-30") is parsed as UTC, while
new Date("2026/08/30")` is parsed as local — the same calendar date, a day apart in some
zones. Always parse ISO 8601, and construct with explicit components when the time matters.
Time Zones Decide the Answer
| Question | Depends on |
|---|---|
| How many days until an event? | The viewer's zone |
| Is this subscription expired? | UTC, always |
| What day of the week was this? | The zone the event happened in |
| When does "tomorrow" start? | The viewer's zone |
Reference Points
| Interval | Days |
|---|---|
| Week | 7 |
| Month (average Gregorian) | 30.44 |
| Quarter | 91.31 |
| Year | 365.2425 |
| Leap year | 366 |