Si spiega qui come calcolare il giorno giuliano JD partendo da una data del calendario gregoriano o giuliano. Se la data immessa è antecedente al 10 ottobre 1582, essa è considerata una data del calendario giuliano.

Parametri:

$Y$: anno (numero intero)
N.B. Nel calendario giuliano l’anno zero non esiste, mentre il conteggio astronomico degli anni lo comprende. Perciò Y=1 significa anno 1 d.C., mentre Y= 0 è l’anno 1 a.C, Y=-1 è l’anno 2 a.C. e così via.


$M$: mese (numero intero)
$D$: giorno (numero decimale)

Il valore $D$ si calcola come segue:

$$D = d + \frac{h}{24}+ \frac{m}{1440}+\frac{s}{86\,400}$$

dove $d$ è il numero del giorno, $h$ sono le ore, $m$ i minuti e $s$ i secondi. Ad esempio il giorno $18$ alle ore $14^h21^m3^s$ diventa:

$$D=18+\frac{14}{24}+\frac{21}{1440}+\frac{3}{86\,400}=18\text{,59795}$$

Nei calcoli seguenti, $int(x)$ è una funzione che restituisce il più grande numero intero minore o uguale a $x$. Ad esempio:
$int(3,4)\to3$
$int(3,5)\to3$
$int(3,6)\to3$
$int(-3,4)\to-4$
$int(-3,5)\to-4$
$int(-3,6)\to-4$

Nel linguaggio Python int() corrisponde alla funzione math.floor().

1) Se $M=1$ o $M=2$ si pone:

$$Y_1=Y-1$$

e

$$M_1=M+12$$

altrimenti:

$$M_1=M$$

e

$$Y_1=Y$$

2) Si pone:

$$A=int\left(\frac{Y}{100}\right)$$

3) Se la data è uguale o più recente del 15 ottobre 1582 si pone:

$$B=2-A+int\left(\frac{A}{4}\right)$$

altrimenti si pone:

$$B=0$$

Il confronto delle due date va eseguito in questo modo:

$$Y+\frac{M}{100}+\frac{D}{10\,000}\ge1582\text{,1015}$$

4) Si calcola $JD$ con la seguente formula:

$$JD=int[(365\text{,25}(Y_1+4716)]+int[30\text{,6001}(M_1+1)]+D+B-1524\text{,5}$$



Test

4 ottobre 2020 ore 12:15:03
$JD=2459127,01045$

18 gennaio 1600 ore 12
$JD=2305465,0$

2 febbraio 800 ore 0
$JD=2013289.5$

29 febbraio -1000 ore 0
$JD=1355866.5$

1 gennaio -4712 ore 12
$JD=0.0$