Julijanski dan (JDN) – definicija, izračun in pretvorbe datumov
Julijanski dan ali število julijanskih dni (JDN) je celoštevilski števec dni, ki sešteva število dni, ki so minili od izbrane začetne epohalne točke, definirane kot ponedeljek ob opoldne po svetovnem času (UT), 1. januarja 4713 pred našim štetjem po julijanskem koledarju. Vsak julijanski dan traja od opoldne do naslednjega opoldneva; zato ima JDN istega dne vseh opoldnev enako celoštevilsko vrednost. JDN je lahko tudi negativno število za datume pred to začetno točko.
Kaj je julijanski datum (JD) in kako se razlikuje od JDN
Julijanski datum (JD) je neprekinjena vrednost, ki vključuje cele dni in dele dneva od iste epohe. Cel del JD daje JDN (spodnja meja oziroma floor), decimalni del pa predstavlja čas dneva merjen od opoldne UT kot decimalni del enega dneva. Na primer, decimalni del 0,5 ustreza polnoči UT. JD tako omogoča natančno merjenje trenutkov znotraj dneva; običajna 64-bitna spremenljivka s plavajočo vejico (double) zadostuje za natančnost približno milisekundo pri vrednostih epohe, izraženih kot julijanski datum.
Osnovne lastnosti in praktične opombe
- Ker JDN šteje dni po opoldnevih, je za astronomijo priročna definicija časa (astronomi pogosto opazujejo ponoči, vendar beležijo čas z opoldneva kot izhodišče).
- Dan v tednu lahko izračunamo iz JDN z ostankom pri deljenju z 7; če je ostanek 0, je ponedeljek (torej JDN mod 7 = 0 → ponedeljek, 1 → torek, …, 6 → nedelja).
- Za praktično uporabo se včasih uporabljata tudi spremembi, kot sta Modified Julian Date (MJD) in drugi premiki ničle; MJD = JD − 2400000.5 (zaradi lažjega dela z datumi in časovnimi znamkami, ki začenjajo ob polnoči).
Izračun JDN iz gregorijanskega datuma (celodnevni JDN)
Za pretvorbo datuma v JDN obstaja več standardnih algoritmov. Eden pogosto uporabljenih, ki deluje za gregorijanski koledar (po 1582) in z ustreznimi prilagoditvami tudi za julijanski koledar, je celoštevilski algoritem brez plavajočih vejic (Fliegel & Van Flandern). Postopek v osnovnih korakih:
- Če je mesec januar ali februar, obravnavaj mesec kot 13. ali 14. mesec prejšnjega leta (tj. zmanjšaj leto za 1 in poveč mesec za 12).
- Izračunaj:
A = floor(365.25 × (leto + 4716))
B = floor(30.6001 × (mesec + 1))
C = floor(leto / 100)
D = 2 − C + floor(C / 4) (ta člen D se uporabi za gregorijanski koledar; za julijanski koledar je D = 0) - JDN = A + B + dan + D − 1524
Ta JDN odgovarja opoldne v danem dnevu. Če želite natančen julijanski datum (JD) vključno s časom, dodajte decimalni del dneva (izražen kot ura/24 + minuta/1440 + sekunda/86400), pri čemer se čas šteje od opoldne UT (torej če imate čas v UT od polnoči, ga morate ustrezno prilagoditi za referenco od opoldne).
Izračun datuma iz JDN (obratna pretvorba)
Obratni izračun (iz JDN v koledarski datum) uporablja ustrezne celoštevilske korake, med katerimi se upošteva, ali je JDN v gregorijanski ali julijanski razpredelnici. Poenostavljen postopek:
- Zabeleži J = JDN + 32044 (za gregorijanski koledar) ali J = JDN + 32082 (za julijanski — uporabno, če veš, da datum pripada julijanskemu koledarju).
- Izračunaj:
g = floor((4 × J + 3) / 146097)
r = J − floor((146097 × g) / 4)
n = floor((4 × r + 3) / 1461)
i = r − floor(1461 × n / 4)
j = floor((5 × i + 2) / 153) - Potem:
dan = i − floor((153 × j + 2) / 5) + 1
mesec = j + 3 − 12 × floor(j / 10)
leto = 100 × g + n − 4800 + floor(j / 10)
Če imate JD z decimalnim delom, decimalni del pretvorite v ure, minute in sekunde tako, da ga pomnožite z 24 za ure, z nadaljnjim množenjem ostanka z 60 za minute itd., pri čemer ne pozabite, da je JD merjen od opoldne UT (tj. decimalni del 0,5 pomeni polnoč UT naslednjega dne).
Primeri in pretvorbe decimalnih delov
Decimalni deli julijanskega datuma pomenijo del dneva (merjenega od opoldne UT). Primeri:
- 0,1 = 0,1 × 24 ure = 2,4 ure = 2 ure 24 minut = 8640 sekund
- 0,01 = 0,01 × 24 ure = 0,24 ure = 14,4 minute = 864 sekund
- 0,001 = 0,001 × 24 ure = 0,024 ure = 1,44 minute = 86,4 sekunde
- 0,0001 = 0,0001 × 24 ure = 0,0024 ure = 0,144 minute = 8,64 sekunde
- 0,00001 = 0,00001 × 24 ure = 0,00024 ure = 0,0144 minute = 0,864 sekunde
Primer iz prakse: julijanski datum 2454115.05486 pomeni, da je integralni del 2454115 (JDN), decimalni del 0,05486 pa predstavlja čas dneva. Ta JD ustreza datumu in času nedelja, 14. januar 2007, 13:18:59.9 UT (ta primer ohranjamo iz izvirnih referenc).
Uporaba in zgodovinski namen
Julijanski sistem dni so razvili astronomi, da bi imeli enoten, neodvisen številski sistem za primerjavo in izračun prek različnih koledarjev ter za poenotenje zgodovinskih kronologij. Kljub imenu nista JDN in JD neposredno vezana na julijanski koledar; gre le za številsko označevanje dni, ki ga je mogoče enostavno pretvoriti v datum po katerem koli koledarju (gregorijanskem, julijanskem ali drugih).
Praktični nasveti
- Pri programskih izračunih uporabljajte preverjene celoštevilske algoritme (brez plavajočih napak) za pretvorbo med koledarskimi datumi in JDN, nato po potrebi dodajte decimalni del za čas.
- Če delate z urami po polnoči in želite, da cel dnevi začnejo pri polnoči (npr. za civilne aplikacije), uporabite MJD ali prilagodite definicijo tako, da JD − 0.5 daje število dni od polnoči.
- Vedno jasno zabeležite, ali se uporablja gregorijanski ali julijanski koledar pri pretvorbah zgodovinskih datumov (pred spremembo koledarja leta 1582 so bile v različnih območjih uporabe različne prakse).
Julijanski dan (JDN) in julijanski datum (JD) sta zato priročna orodja za merjenje razdalj med datumi, usklajevanje zapisov iz različnih koledarjev in natančno časovno označevanje v astronomiji in drugih znanostih.
Vprašanja in odgovori
V: Kaj je julijanski dan ali številka julijanskega dne (JDN)?
O: Julijanski dan ali število julijanskih dni (JDN) je število dni, ki so minili od začetnega obdobja, opredeljenega kot opoldanski univerzalni čas (UT) v ponedeljek, 1. januarja 4713 pred našim štetjem po julijanskem koledarju.
V: Kako lahko JDN uporabimo za določitev dneva v tednu?
O: Vsi JDN, ki so enakomerno deljivi s 7, so ponedeljki. Uporabljajo se lahko tudi negativne vrednosti, ki pa so nastale že pred zapisano zgodovino. Na primer, zdaj ob 15:38, četrtek, 10. novembra 2022 (UTC) je JDN 2459894 (posodobitev). Ko ta JDN delimo s 7, je ostanek 3, kar je celoštevilski izraz za dan v tednu, pri čemer 0 pomeni ponedeljek.
V: Kaj je julijanski datum?
O: Julijanski datum (JD) je neprekinjeno štetje dni in delov, ki so minili od iste začetne epohe. Trenutno je JD 2459894.1513889. Integralni del (njegovo dno) podaja številko julijanskega dneva, ulomni del pa čas dneva od opoldneva UT kot decimalni del enega dneva ali delni dan, pri čemer 0,5 predstavlja polnoč UT.
V: Kako natančno lahko 64-bitna spremenljivka s plavajočo vejico predstavlja epoho, izraženo kot julijanski datum?
O: 64-bitna spremenljivka s plavajočo vejico lahko običajno predstavlja epoho, izraženo kot julijanski datum, z natančnostjo približno 1 milisekunde.
V: Kaj pomeni, ko rečemo "Decimalni deli julijanskega datuma"?
O: Decimalni deli julijanskega datuma se nanašajo na to, koliko časa je preteklo od opoldneva UT na kateri koli dan, izraženega kot delci, kot so 0,1 = 2,4 ure ali 144 minut ali 8640 sekund; 0,01 = 0,24 ure ali 14,4 minute ali 864 sekund; 0,001 = 0