jdcal
Julian dates from proleptic Gregorian and Julian calendars.
Decision gist · record as of 2026-08-14
Yes, if you need Julian date conversion and can tolerate an abandoned package. The library is mature, has no dependencies, and works across Python 2 and 3. However, be aware that it will not receive bug fixes or updates—verify that its behavior matches your requirements before committing to it in a production system.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Installation is straightforward with no runtime dependencies.
- However, the package is abandoned—last release was in April 2019 and last commit in February 2022—so it will not receive updates or security patches.
License · maintenance · safety
BSD (permissive) — Released under BSD (permissive license), so you can use, modify, and distribute it freely with minimal restrictions.
last release 2019-04-24 (2669 days) · last repo commit 2022-02-26 · 39 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 3,804,120 downloads/mo, #2,494 on PyPI
Alternatives
Verify before relying
pip install jdcal
from jdcal import gcal2jd, jd2gcal, is_leap
# Convert Gregorian date to Julian date
jd = gcal2jd(2000, 1, 1)
print(jd) # (2400000.5, 51544.0)
# Convert back to Gregorian
gcal = jd2gcal(2400000.5, 51544.0)
print(gcal) # (2000, 1, 1, 0.0)
# Check leap year
print(is_leap(2000)) # True- Whether the abandoned status and lack of recent maintenance pose a risk for your use case, particularly if you rely on calendar edge cases or need Python 3.8+ support.
- Whether the proleptic calendar behavior (working for dates outside the calendar's historical validity) matches your application's requirements.
What it is and what it does
jdcal is a pure-Python library for converting between Julian dates and calendar dates in both the Gregorian and Julian calendar systems. It stores Julian dates as pairs of floating-point numbers to preserve precision when working with large date values, allowing the integer and fractional parts to be handled separately for maximum accuracy in astronomical and scientific calculations.
The package provides functions to convert Gregorian or Julian calendar dates to Julian dates and back, test for leap years, and access module-level constants for the Modified Julian Date epoch and J2000.0. All conversions are proleptic, meaning they work for dates outside the historical range where each calendar was actually in use. With no runtime dependencies and a small footprint, it is suitable for embedded use in scientific applications, but the package has been abandoned since 2019 and will not receive updates.
Use it for
- Astronomical calculations that require Julian dates for precise time representation across centuries.
- Converting historical or future calendar dates to Julian dates for scientific simulations or data analysis.
- Testing leap-year logic or validating calendar conversions in applications that handle diverse date formats.
- Splitting date precision across two numbers when working with systems that require high-precision time tracking.
- Proleptic calendar conversions for dates before the Gregorian calendar reform or in non-standard historical contexts.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need Julian date conversion and can tolerate an abandoned package.
The library is mature, has no dependencies, and works across Python 2 and 3. However, be aware that it will not receive bug fixes or updates—verify that its behavior matches your requirements before committing to it in a production system.
Install
jdcal on PyPI
Before you install
Installation is straightforward with no runtime dependencies. However, the package is abandoned—last release was in April 2019 and last commit in February 2022—so it will not receive updates or security patches.
License in practice
Released under BSD (permissive license), so you can use, modify, and distribute it freely with minimal restrictions.
Quickstart
pip install jdcal
from jdcal import gcal2jd, jd2gcal, is_leap
# Convert Gregorian date to Julian date
jd = gcal2jd(2000, 1, 1)
print(jd) # (2400000.5, 51544.0)
# Convert back to Gregorian
gcal = jd2gcal(2400000.5, 51544.0)
print(gcal) # (2000, 1, 1, 0.0)
# Check leap year
print(is_leap(2000)) # True
Verify before relying
- Whether the abandoned status and lack of recent maintenance pose a risk for your use case, particularly if you rely on calendar edge cases or need Python 3.8+ support.
- Whether the proleptic calendar behavior (working for dates outside the calendar's historical validity) matches your application's requirements.
Package facts
| License | BSD permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Abandoned 2,669 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 3,804,120 / month, #2,494 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 6 - MatureIntended Audience :: Science/ResearchLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Scientific/Engineering :: Astronomy |
Evidence: jdcal-1.4.1-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “julian date conversion”
- jdcalConverts between Julian dates and Gregorian or Julian calendar dates,…
- convertdateConverts dates between the Gregorian calendar and 15+ alternative…
- yearfracComputes fractional year differences between dates using various…
Give your agent the search over MCP, or paste the wish link into any chat.
More Astronomy packages
Albumentations applies image transformations to training data, supporting classification, segmentation, object detection, and pose estimation with a unified API for images, masks, bounding boxes, and keypoints.
Install it if you need a unified, production-grade augmentation API for computer vision tasks.
Converts dates between the Gregorian calendar and 15+ alternative calendar systems including Hebrew, Islamic, Julian, French Republican, Mayan, and others, plus calculates holidays across North American, Jewish, and other traditions.
Install only if you actually need multi-calendar support; the single pymeeus dependency is manageable.
PyERFA wraps the ERFA C library (Essential Routines for Fundamental Astronomy) as NumPy universal functions, exposing key astronomy algorithms for scalar or array inputs.
Install it if you need fundamental astronomy calculations or if another package depends on it.
PyMeeus implements astronomical algorithms from Jean Meeus's classical reference, providing Python classes for computing celestial positions, lunar phases, planetary phenomena, and time conversions with minimal dependencies.
However, verify Python version compatibility first and consider whether other libraries better suit production-grade use cases.
PyEphem computes high-precision positions of planets, moons, stars, comets, and asteroids in the sky for any observer location and date, using C-based numeric routines from the XEphem astronomy application.
Adds a quaternion dtype to NumPy, enabling efficient quaternion arithmetic and array operations with native NumPy integration.
See also yearfrac · zhdate · lunardate · pyCalverter · jdatetime · pyluach · ummalqura · hijridate · cftime