Weeks lived so far calculator
Someone born on June 15, 1990 has lived 1884 full weeks by July 25, 2026, and is in week 1885 of life. Enter a birth date and a reference day to fill a life calendar, a birthday recap or a milestone journal. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Birth date
- 1990-06-15
- Reference date
- 2026-07-25
- Jdn birth
- 2,448,058
- Jdn reference
- 2,461,247
- Total days
- 13,189
- Weeks lived
- 1,884
A life-in-weeks overview answers a simple but widely searched question: how many complete seven-day weeks have you lived between the calendar day you were born and a chosen reference day. People look for a weeks lived so far calculator when they fill a printed life calendar, write a birthday recap, journal a milestone, or turn a date of birth into a single integer they can compare across siblings or generations. This tool takes a birth date and a reference date in strict ISO year-month-day form, confirms that each civil day exists on the Gregorian calendar including leap-year Februaries, converts both days to integer day numbers with a pure formula, and reports the number of full weeks as the floor of the day span divided by seven, plus leftover days from zero through six. A reference day before the birth day is rejected as invalid input rather than a negative week count.
How full weeks lived are counted from two calendar days
Begin with two civil calendar dates written as year, month, and day in the international ISO form with hyphens and fixed widths so every client agrees on the same six integers. The first date is the birth day; the second is the as-of reference day that stands in for today or for any milestone you want to freeze.
For each string confirm that the year lies in a practical Gregorian range from year one through nine thousand nine hundred ninety-nine, that the month is between one and twelve, and that the day exists for that month under Gregorian leap rules: a year is a leap year when it is divisible by four, except that century years are leap years only when they are also divisible by four hundred.
That rule makes February twenty-nine legal in years such as two thousand twenty-four and two thousand, and illegal in two thousand twenty-three and nineteen hundred. When both triples are valid, convert each civil day to an astronomical Julian Day Number with the Fliegel and Van Flandern integer formula used across the date family. Subtract the birth day number from the reference day number to obtain the whole calendar days lived; a negative result means the reference sits before birth and is rejected.
Divide the non-negative day count by seven with integer floor for full weeks lived, keep the remainder as leftover days between zero and six inclusive, and add one to the week count to obtain the one-based week of life that a printed poster would highlight. Completed years of age use the usual birthday rule: the age stays at the previous integer until the birth month and day have been reached on the reference calendar.
Where a weeks-lived calculator shows up in real work
Printed life calendars and journal templates paint one box per week of a planned ninety-year span; filling the current box requires a trusted full-week count from the birth day to a freeze date, not a raw day total that still has to be divided by hand. Genealogy and classroom projects compare siblings or historical figures on the same as-of day without pulling a scheduling library or trusting a host clock that would make two runs disagree.
If you later need a generic weeks-between-two-dates gap that allows either order, a business-day count that skips weekends, or an age in years months and days without a week framing, treat those as separate search intents and landings rather than overloading this weeks-lived-so-far page.
What you can do with it
Birthday and milestone recaps
Open a birthday note or anniversary speech with how many full weeks someone has lived, plus leftover days when the span is not a multiple of seven.
Roster and genealogy columns
Materialize a weeks-lived column for a class list, family tree, or cohort snapshot on one shared reference date without time-zone drift.
FAQ
What does weeks lived so far mean?
It means the number of complete seven-day weeks between a Gregorian birth date and a reference date, plus leftover days from zero through six, without business-day rules or wall-clock time.
What date format is required?
Values like 1990-6-15 or 1990/06/15 are rejected so every client agrees.
What happens if the reference date is before the birth date?
Weeks lived cannot be negative; swap the fields or pick a later as-of day.
What does the weeks lived so far calculator cost?
The browser tool is free and runs locally.
What is the week of life number?
It is the week you are living now: full weeks lived plus one. With 1884 completed weeks, you are in week 1885, the box a printed life-in-weeks poster would highlight.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/date/weeks-lived \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"birth_date":"1990-06-15","reference_date":"2026-07-25"}'const res = await fetch("https://api.kit.forhosting.com/date/weeks-lived", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"birth_date": "1990-06-15",
"reference_date": "2026-07-25"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/weeks-lived",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"birth_date": "1990-06-15",
"reference_date": "2026-07-25"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/weeks-lived", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"birth_date":"1990-06-15","reference_date":"2026-07-25"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"birth_date":"1990-06-15","reference_date":"2026-07-25"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/weeks-lived", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"birth_date": "1990-06-15",
"reference_date": "2026-07-25"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.weeks_lived",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
What you send and what you get back
Classic checks include the same birth and reference day yielding zero weeks lived, zero leftover days, and week of life one; exactly twenty-eight days yielding four weeks lived and leftover zero; and a multi-decade span such as mid-June nineteen ninety to late July two thousand twenty-six producing thousands of completed weeks plus a small remainder. Wire the free browser form for a personal recap, then call the identical contract from scripts when you need a column of weeks lived for a roster. Send two required string fields: birth_date and reference_date, each a strict ISO calendar day such as nineteen ninety hyphen zero six hyphen one five and two thousand twenty-six hyphen zero seven hyphen two five. Aliases birth, dob, and date_of_birth are accepted for the first field; as_of, as_of_date, today, and on_date are accepted for the second, so scripts that already store a date of birth under a short name do not need a rename step. Missing fields, non-string values, strings that do not match the four-two-two digit pattern, dates that match the pattern but are not real calendar days, and a reference day earlier than the birth day all fail with invalid_input and are not charged. On success the response echoes the normalized birth_date and reference_date ISO strings, the Julian Day Number for each side, total_days as the signed-non-negative span, weeks_lived as the floor of that span divided by seven, leftover_days as the remainder modulo seven, week_of_life as the one-based poster cell, age_years as completed calendar years, and a short formula string that documents the JDN path. Pricing for successful API calls is the published base of $0.002 per item; validation failures do not consume prepaid balance.
Where a weeks-lived calculator shows up in real work
Birthday newsletters, anniversary speeches, and family newsletters often open with how many weeks a person has been alive, which this endpoint returns as a single integer plus leftover days so the copy can say four weeks exactly or four weeks and three days. Because this capability is a pure parse engine, API pricing is the published base of $0.002 per successful item and failed validation does not consume balance.
Integration use cases
Printed life-in-weeks calendars
Fill the current week box on a life calendar from a birth date and a freeze date, using weeks_lived and the one-based week_of_life cell.
Technical questions
What if the reference date is the same as the birth date?
You have lived zero full weeks and zero leftover days. week_of_life is one: the first poster cell of life, on the day of birth.