ForHosting KIT · Dates & time

Julian ↔ Gregorian converter

Convert a date between the Julian and Gregorian calendars, either way round: 15 October 1582 in the Gregorian calendar is 5 October 1582 in the Julian one. The result names both calendars, so nothing gets mixed up. 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
1582-10-15
Conversion direction
gregorian_to_julian
You get
Input date
1582-10-15
Converted date
1582-10-05
Source calendar
gregorian
Destination calendar
julian

Convert civil dates between the Julian and Gregorian calendars with a documented reform policy.

Same day, two calendar dates

The Julian and Gregorian calendars give the same day different dates. On the day the Gregorian calendar calls 15 October 1582, the Julian calendar still reads 5 October 1582, ten dates earlier. This converter takes a civil date written as year, month and day, applies the calendar reform rule it documents, and gives you the matching date in the other calendar, labelled with the calendar you started from and the one you got. Nothing depends on a time zone or a clock: a date without a time is a plain calendar day, and the same input always gives the same answer, with no conversion table to build in a spreadsheet.

Avoiding the usual mix-ups

The most frequent mistake is converting in the wrong direction. If a date is already Gregorian and you treat it as Julian, the result moves the opposite way instead of being corrected, so check which calendar your source uses before you choose. A second mistake is assuming a time zone can shift the day; it cannot, because only the calendar date is read. Finally, empty entries, values that are not dates and contradictory choices are refused before any calculation, which means you see a clear message instead of a converted date that looks believable but is wrong.

Edge cases and limits

Empty strings, wrong types, and contradictory ranges are rejected early. Civil dates without timezone are calendar dates. Embedded tables travel inside the capability folder with no network calls at runtime.

Review examples before integrating.

Daily work

Get a reliable answer without a spreadsheet.

What is 15 October 1582 in the Julian calendar?

It is 5 October 1582. Choose the Gregorian-to-Julian direction, enter 1582-10-15 and the converter gives 1582-10-05: the same day, written ten dates earlier in the Julian calendar.

Can I convert in both directions?

Yes. Pick Julian to Gregorian or Gregorian to Julian before entering the date; the result names the calendar you started from and the one you got, so the two are never confused.

Does my time zone change the result?

No. A date with no time attached is treated as a plain calendar day, so where you are or what your clock says has no effect on the converted date.

Why is my date refused?

Empty entries, values that are not dates and contradictory choices are rejected before any calculation, so you get a clear message instead of a converted date that looks plausible but is wrong.

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/julian-calendar

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/julian-calendar \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"1582-10-15"}'
{
  "date": "1582-10-15"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "date.julian_calendar",
  "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.

How it works

Convert civil dates between the Julian and Gregorian calendars with a documented reform policy. The calculation is fully deterministic and runs free in your browser with the same pure function as the API. Inputs are validated before arithmetic so bad types become clear invalid_input errors. Additional guidance covers validation order, deterministic results, browser and API parity, stable error match strings for certification, and safe handling of out-of-range floating values. Additional guidance covers validation order, deterministic results, browser and API parity, stable error match strings for certification, and safe handling of out-of-range floating values.

Inputs and outputs

Optional fields use documented defaults. Required schema fields must be present and typed. Success payloads always include the primary output fields so UI bindings stay stable. Extremely large intermediates that overflow IEEE-754 become out-of-range errors rather than nulls. Additional guidance covers validation order, deterministic results, browser and API parity, stable error match strings for certification, and safe handling of out-of-range floating values. Additional guidance covers validation order, deterministic results, browser and API parity, stable error match strings for certification, and safe handling of out-of-range floating values.

Edge cases and limits

Additional guidance covers validation order, deterministic results, browser and API parity, stable error match strings for certification, and safe handling of out-of-range floating values. Additional guidance covers validation order, deterministic results, browser and API parity, stable error match strings for certification, and safe handling of out-of-range floating values.

Automation

Same pure function in widget and API.

Teaching

Stable golden fixtures for demos.

Is it free?

Yes, tier A in the browser.

Network?

No network; parse on-device.

Invalid input?

invalid_input with a clear match.

Stable?

Deterministic goldens freeze the contract.

Author?

samurai.

Read the full KIT documentation →