Thursday, 16 February 2023

The Julian Day Number

In a January 2023 post titled Turning Dates into Numbers, I described one way of turning a unique date into a unique number using the YYYYMMDD method. However, another way is to simply affix the day of the year to the year using a YYYYDDD template (where D stands for Digit rather than Day). In non-leap years, the DDD will range from 001 to 365 and in leap years it will range from 0 to 366. Today being the 16th February 2023, the number would be 2023047.

This system has the advantage of producing six digit numbers rather the eight digit numbers that arise from the YYYYMMDD system. Another advantage is that there are no gaps in the progression of numbers. The transition from one month to the next in the YYYYMMDD system produces gaps. For example, the end of January this year corresponded to the number 20230131 and this was followed immediately by 20230201, corresponding to the 1st February. There is a gap of 70 between these two numbers.

What about the transition from one year to the next. On 31st December 2023, the number 2023365 transitions to 2024001. This a number gap of 636 and a serious discontinuity. This led me to consider methods for arriving at a continuous count and I was reminded of the Julian Day that appears in the horoscopes generated by Astrolog. See Figure 1 that shows the chart for the current time in Jakarta with a Julian Day of 2459991.62287.


Figure 1

So what is a Julian Day Number? Here is what Wikipedia has to say on the topic:

The Julian day is the continuous count of days since the beginning of the Julian period, and is used primarily by astronomers, and in software for easily calculating elapsed days between two events (e.g. food production date and sell by date).

The Julian period is a chronological interval of 7980 years; year 1 of the Julian Period was 4713 BC (−4712). The Julian calendar year 2023 is year 6736 of the current Julian Period. The next Julian Period begins in the year AD 3268. Historians used the period to identify Julian calendar years within which an event occurred when no such year was given in the historical record, or when the year given by previous historians was incorrect.

The Julian day number (JDN) is the integer assigned to a whole solar day in the Julian day count starting from noon Universal Time, with Julian day number 0 assigned to the day starting at noon on Monday, January 1, 4713 BC, proleptic Julian calendar (November 24, 4714 BC, in the proleptic Gregorian calendar), a date at which three multi-year cycles started (which are: Indiction, Solar, and Lunar cycles) and which preceded any dates in recorded history. For example, the Julian day number for the day starting at 12:00 UT (noon) on January 1, 2000, was 2451545.

The Julian date (JD) of any instant is the Julian day number plus the fraction of a day since the preceding noon in Universal Time. Julian dates are expressed as a Julian day number with a decimal fraction added. For example, the Julian Date for 00:30:00.0 UT January 1, 2013, is 2456293.520 833. This page was loaded at 2023-02-15 23:56:54 (UTC) – expressed as a Julian date this is 2459991.4978472. 

I was clueless as to what was meant by indiction but it is explained as follows, again quoting from Wikipedia:

An indiction (Latin: indictio, impost) was a periodic reassessment of taxation in the Roman Empire which took place every fifteen years. In Late Antiquity, this 15-year cycle began to be used to date documents and it continued to be used for this purpose in Medieval Europe, and can also refer to an individual year in the cycle; for example, "the fourth indiction" came to mean the fourth year of the current indiction. Since the cycles themselves were not numbered, other information is needed to identify the specific year.

The key numbers are 15, 19 and 28 that multiply together to give 7980. The article continues:

The Julian day number is based on the Julian Period proposed by Joseph Scaliger, a classical scholar, in 1583 (one year after the Gregorian calendar reform) as it is the product of three calendar cycles used with the Julian calendar:

28 (solar cycle) × 19 (lunar cycle) × 15 (indiction cycle) = 7980 years

Its epoch occurs when all three cycles (if they are continued backward far enough) were in their first year together. Years of the Julian Period are counted from this year, 4713 BC, as year 1, which was chosen to be before any historical record.

TODAY IS JULIAN DAY NUMBER 2459991

A formula is provided to convert any Gregorian calendar date to its equivalent Julian day number. It is stated below and here is a permalink to its calculation for any given day.

JDN = (1461 × (Y + 4800 + (M − 14)/12))/4 +(367 × (M − 2 − 12 × ((M − 14)/12)))/12 − (3 × ((Y + 4900 + (M - 14)/12)/100))/4 + D − 32075 

This number has much to recommend it. Currently the Julian day number is seven digits long and will remain so for many years to come. So for 2023, the 1st January corresponds to a JDN of 2459946 and the 31st December 2023 corresponds to 2460310. The full range of numbers for 2023 is:

2459946, 2459947, 2459948, 2459949, 2459950, 2459951, 2459952, 2459953, 2459954, 2459955, 2459956, 2459957, 2459958, 2459959, 2459960, 2459961, 2459962, 2459963, 2459964, 2459965, 2459966, 2459967, 2459968, 2459969, 2459970, 2459971, 2459972, 2459973, 2459974, 2459975, 2459976, 2459977, 2459978, 2459979, 2459980, 2459981, 2459982, 2459983, 2459984, 2459985, 2459986, 2459987, 2459988, 2459989, 2459990, 2459991, 2459992, 2459993, 2459994, 2459995, 2459996, 2459997, 2459998, 2459999, 2460000, 2460001, 2460002, 2460003, 2460004, 2460005, 2460006, 2460007, 2460008, 2460009, 2460010, 2460011, 2460012, 2460013, 2460014, 2460015, 2460016, 2460017, 2460018, 2460019, 2460020, 2460021, 2460022, 2460023, 2460024, 2460025, 2460026, 2460027, 2460028, 2460029, 2460030, 2460031, 2460032, 2460033, 2460034, 2460035, 2460036, 2460037, 2460038, 2460039, 2460040, 2460041, 2460042, 2460043, 2460044, 2460045, 2460046, 2460047, 2460048, 2460049, 2460050, 2460051, 2460052, 2460053, 2460054, 2460055, 2460056, 2460057, 2460058, 2460059, 2460060, 2460061, 2460062, 2460063, 2460064, 2460065, 2460066, 2460067, 2460068, 2460069, 2460070, 2460071, 2460072, 2460073, 2460074, 2460075, 2460076, 2460077, 2460078, 2460079, 2460080, 2460081, 2460082, 2460083, 2460084, 2460085, 2460086, 2460087, 2460088, 2460089, 2460090, 2460091, 2460092, 2460093, 2460094, 2460095, 2460096, 2460097, 2460098, 2460099, 2460100, 2460101, 2460102, 2460103, 2460104, 2460105, 2460106, 2460107, 2460108, 2460109, 2460110, 2460111, 2460112, 2460113, 2460114, 2460115, 2460116, 2460117, 2460118, 2460119, 2460120, 2460121, 2460122, 2460123, 2460124, 2460125, 2460126, 2460127, 2460128, 2460129, 2460130, 2460131, 2460132, 2460133, 2460134, 2460135, 2460136, 2460137, 2460138, 2460139, 2460140, 2460141, 2460142, 2460143, 2460144, 2460145, 2460146, 2460147, 2460148, 2460149, 2460150, 2460151, 2460152, 2460153, 2460154, 2460155, 2460156, 2460157, 2460158, 2460159, 2460160, 2460161, 2460162, 2460163, 2460164, 2460165, 2460166, 2460167, 2460168, 2460169, 2460170, 2460171, 2460172, 2460173, 2460174, 2460175, 2460176, 2460177, 2460178, 2460179, 2460180, 2460181, 2460182, 2460183, 2460184, 2460185, 2460186, 2460187, 2460188, 2460189, 2460190, 2460191, 2460192, 2460193, 2460194, 2460195, 2460196, 2460197, 2460198, 2460199, 2460200, 2460201, 2460202, 2460203, 2460204, 2460205, 2460206, 2460207, 2460208, 2460209, 2460210, 2460211, 2460212, 2460213, 2460214, 2460215, 2460216, 2460217, 2460218, 2460219, 2460220, 2460221, 2460222, 2460223, 2460224, 2460225, 2460226, 2460227, 2460228, 2460229, 2460230, 2460231, 2460232, 2460233, 2460234, 2460235, 2460236, 2460237, 2460238, 2460239, 2460240, 2460241, 2460242, 2460243, 2460244, 2460245, 2460246, 2460247, 2460248, 2460249, 2460250, 2460251, 2460252, 2460253, 2460254, 2460255, 2460256, 2460257, 2460258, 2460259, 2460260, 2460261, 2460262, 2460263, 2460264, 2460265, 2460266, 2460267, 2460268, 2460269, 2460270, 2460271, 2460272, 2460273, 2460274, 2460275, 2460276, 2460277, 2460278, 2460279, 2460280, 2460281, 2460282, 2460283, 2460284, 2460285, 2460286, 2460287, 2460288, 2460289, 2460290, 2460291, 2460292, 2460293, 2460294, 2460295, 2460296, 2460297, 2460298, 2460299, 2460300, 2460301, 2460302, 2460303, 2460304, 2460305, 2460306, 2460307, 2460308, 2460309, 2460310

Of these 365 numbers, 23 are prime. They are:

2459953, 2459957, 2459993, 2460013, 2460043, 2460061, 2460083, 2460097, 2460113, 2460127, 2460137, 2460151, 2460179, 2460181, 2460187, 2460193, 2460197, 2460217, 2460229, 2460277, 2460281, 2460299, 2460301

To convert a JDN to date time format, the following code (shown in blue) can be used with output in red:

import pandas as pd

juliandate = 2459168.298

t = pd.to_datetime(juliandate, origin='julian', unit='D')

print(t)

2020-11-14 19:09:07.200000

Applying this to the JDN's that are prime, we get the result shown in Figure 2.


Figure 2: permalink

It should be borne in mind that times are in UTC or Coordinated Universal Time and for Jakarta, 7 hours must be added. Since the Julian day begins at midday UTC, this means that in Jakarta the new day starts at 7 pm. I'm writing this at 9:55am on 18th February 2023 but the Julian Day time is 2459993.622 ... and the JDN (2459993) corresponds to 17th February 2023.

No comments:

Post a Comment