ForHosting KIT · Dates & time

Start and end of century

15 June 2024 sits in the 21st century, which runs from 1 January 2001 to 31 December 2100. Enter any date to get the century's number, its first and last year and the exact first and last day. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Date
2024-06-15
You get
Year
2,024
Month
6
Day
15
Century
21

Historians, archivists, product timelines, and curriculum planners often need the exact year window of the century that holds a given calendar day—not just a vague “twenty-first century” label, but the inclusive first and last years and the concrete January first and December thirty-first bounds you can drop into filters and reports. Impossible calendar days fail with a clear invalid input error and are not charged.

How historical centuries map years to first and last bounds

Under the historical Gregorian convention used here, the first century covers years one through one hundred inclusive, the second century covers one hundred one through two hundred, and so on. In formula form the ordinal century for a positive year is the ceiling of year divided by one hundred; the first year of that century is then (century minus one) times one hundred plus one, and the last year is century times one hundred.

That means year two thousand falls in the twentieth century (nineteen oh one through two thousand), while year two thousand one opens the twenty-first century (two thousand one through twenty-one hundred). This is the same ordinal numbering used by many encyclopedias and by the related decade-and-century finder for CE years; it is not the informal “zero-based” window that sometimes labels two thousand through two thousand ninety-nine as “the two thousands.”

Send the required field date as a string in strict ISO form YYYY-MM-DD with a four-digit year from zero zero zero one to nine nine nine nine, a two-digit month, and a two-digit day that actually exists on the proleptic Gregorian calendar. Leap days such as twenty twenty-four February twenty-nine are accepted; non-leap February twenty-nine and impossible months or days raise invalid input so pipelines never invent a century from a broken date.

Is the twenty-first century 2000–2099 or 2001–2100?

This product uses historical ordinal centuries: the 21st century is 2001 through 2100 inclusive. Year 2000 belongs to the 20th century (1901–2000).

What happens if the date is invalid?

Wrong ISO shape, impossible days such as 2023-02-29, and years outside 0001–9999 are rejected and not charged.

Is the start and end of century calculator free?

The browser tool runs free on your device.

Does this use the computer clock or timezone?

No. Bounds are computed only from the ISO date you send.

How is the century of a year worked out?

Divide the year by 100 and round up to the next whole number, so 2024 gives the 21st century. That century starts in 2001, the year after the previous one ends, and closes in 2100.

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.

POSThttps://api.kit.forhosting.com/date/century-start-end

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.

curl -X POST https://api.kit.forhosting.com/date/century-start-end \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2024-06-15"}'
{
  "date": "2024-06-15"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "date.century_start_end",
  "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.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

This capability accepts a single explicit ISO calendar date in YYYY-MM-DD form and returns the historical Gregorian century that contains it: the ordinal century number and label, the first and last years, and the inclusive first_date and last_date strings. The algorithm is pure integer arithmetic from your input only—no network calls, no wall clock, and no host timezone—so the same date always yields the same JSON.

How historical centuries map years to first and last bounds

The response echoes the normalized date, year, month, and day so logs can show exactly what was resolved. Identical requests always produce identical JSON because the path never touches Date, random seeds, or remote services.

Reading first_year, last_year, first_date, last_date, and century labels

Boundary dates are deliberate: an input of two thousand December thirty-first returns the twentieth century ending that day, while two thousand one January first returns the twenty-first century starting that day. On success the response includes the echoed input date and its year, month, and day components; the integer century; century_ordinal such as twenty-first as 21st; and century_label such as 21st century for display. The primary product fields are first_year and last_year (inclusive integers) plus first_date and last_date as zero-padded YYYY-MM-DD strings: first_date is always January first of the first year, and last_date is always December thirty-first of the last year. length_years is always one hundred under this contract. The calendar field is always gregorian and method is always historical_century so downstream code can branch without sniffing shapes. Use first_date and last_date alone for SQL BETWEEN clauses, warehouse partition filters, and timeline zoom ranges; use first_year and last_year when building century-level aggregations or chart axis ticks; use century_label when a UI badge or lesson title needs a short human phrase. Year outside one through nine thousand nine hundred ninety-nine, non-string dates, wrong ISO shape, and impossible day-of-month values fail with invalid_input mentioning the field and are not charged.

API usage, pricing, workflows, and how this differs from decade tools

Call the free in-browser start and end of century tool for lesson plans, museum labels, spreadsheet checks, and quick verification of century windows without installing a calendar library. Send a JSON body with the required string field date set to an explicit ISO calendar day. Use the prepaid API when an archive pipeline, CMS timeline, education product, or reporting cron needs a stable contract under KIT balance at $0.002 per successful item; validation failures never consume balance after the engine rejects the request. Pair this endpoint with week, month, or quarter start-and-end tools when the next step is a finer range inside the same century, or with decade-and-century labeling when you only have a year and need decade tags rather than full century date bounds. Authors shipping SDKs can map first_date and last_date into date-range controls and century_label into headings. This product does not convert BCE eras, astronomical year zero, fiscal centuries, or informal two-digit century nicknames—those are different search intents—so keep specialized chronology rules in your own layer and call this capacity for standard historical CE century bounds from an ISO date.

Archive and museum timeline windows

Curators resolve the inclusive century that holds an artifact date, then feed first_date and last_date into collection filters, exhibition labels, and public timeline zoom ranges.

Education and curriculum planners

Lesson tools turn a sample ISO date into century_label plus first and last years so worksheets and quizzes show accurate historical century bounds without hand math.

Product analytics and century-level reports

Dashboards and batch jobs pin century partitions from any event date, using first_year and last_year for aggregations and CI fixtures that stay stable across hosts.

How do I get the start and end of a century from a date?

Send JSON with date as YYYY-MM-DD (for example 2024-06-15). The response includes first_year, last_year, first_date, last_date, and century_label for the historical century containing that day.

Read the full KIT documentation →