Átalakítás a Julián-dátum és a Gergely-naptár között
A Julián-dátum a Kr. E. 4713. január 1- je óta eltelt napokat számolja . Chr. (JD = 0) -. Ez a dátum a később bevezetett proleptikus (fejlett) Julián-naptáron alapul .
A Gergely-naptárt 1582- ben vezették be, hogy kompenzálják a Julián-naptárnak a napévtől való eltérését.
Táblázat által vezérelt átalakítás
különbség | Adat |
---|---|
0 nap | 1582. október 4. júl. |
10 nap | Október 5. jul. / 1582. október 15. greg. |
10 nap | Február 28. július. / 1700. március 10-i greg. |
11 nap | Február 29. július. / 1700. március 11-i greg. |
11 nap | Március 1. jul. / 1700. március 12-i greg. |
11 nap | Február 28. július. / Március 11. 1800 greg. |
12 nap | Február 29. július. / Március 12., 1800 greg. |
12 nap | Március 1. jul. / Március 13., 1800 greg. |
12 nap | Február 28. július. / 1900. március 12. greg. |
13 nap | Február 29. július. / 1900. március 13-i greg. |
13 nap | Március 1. jul. / 1900. március 14-i greg. |
13 nap | Február 15, jul. / 2000. február 28. greg. |
13 nap | Február 16., júl. / 2000. február 29. greg. |
13 nap | Február 17. július. / 2000. március 1. greg. |
13 nap | Február 28. július. / 2000. március 12. greg. |
13 nap | Február 29. július. / 2000. március 13, greg. |
13 nap | Március 1. jul. / 2000. március 14-i greg. |
13 nap | Február 28. július. / 2100. március 13-i greg. |
14 nap | Február 29. július. / 2100 greg március 14 . |
14 nap | Március 1. jul. / 2100. március 15-i greg. |
Az 1582-es naptári reform során tíz napot kihagytak. Ez a tíz nap teszi ki a különbséget a két naptár között július 29-ig . / 1700. március 11-i greg. . A Julián-naptárban szökőnap következik, a Gergely-korban 1700-nak nincs szökőnapja, tehát a március 1-jei különbség július. / 1700. március 12-i greg. tizenegy nap. Az 1800, 1900, 2100, 2200, 2300, 2500 stb. Évek mindegyikében a Gergely-kor és a Julián között eltelt idő egy nappal tovább nő. A 20. században, akárcsak a 21. században, 13 nap van. Július 8-án jul. / 1969. július 21, greg. belépett Neil Armstrong lett az első ember a Holdon.
Aktuális nap
Ebben a számításban az év eleje óta a 0-tól kezdődő napszámot aktuális napnak (LT) nevezzük . LT = 0 január 1- jére , LT = 364 (normál év) vagy LT = 365 (szökő év) december 31-re .
A dátum és az aktuális nap közötti átváltáshoz lásd: Az aktuális nap kiszámítása .
A szökőév kritériuma a következő:
- A szökőév általában 4-gyel osztható év. Azonban:
- A 100-zal osztható évek csak akkor szökőévek, ha 400-zal is oszthatók. (Tehát például 2000 szökőév volt, 1900 nem.)
Jelen év
Ebben a számításban a Gergely-naptár elejét az 1. év január 1-jére előrehozzák. Ez azt jelenti, hogy a naptár egy 400 éves ciklus elején kezdődik, és a számítás egyszerűsödik. A folyó év (LJ) a kezdő évtől számított évek száma. Az 1. évre LJ = 0, a 2. évre LJ = 1 stb. Ennek a napnak a Julián dátuma JD0 = 1721426.
Gergely-naptár → Július-dátum
Az aktuális napot (LT) hónap (M) és nap (T) alapján határozzák meg, figyelembe véve a szökőév kritériumát (lásd a Julián dátum és a Julián naptár közötti átváltást ).
Ezután a folyó évet (LJ) a (J) évből számoljuk:
LJ = J - 1
A Julián dátum kiszámításához kiszámítják a teljes 400 éves ciklusok számát (N400) a kezdő év óta és a teljes évek számát (R400) az utolsó, nem teljes 400 éves ciklusban:
N400 = LJ/400 (ganzzahlig) R400 = Rest dieser Division
A teljes 100 éves ciklusok (N100) számát az utolsó 400 éves ciklusban és a teljes évek (R100) számát az utolsó, nem teljes 100 éves ciklusban az R400 alapján számoljuk:
N100 = R400/100 (ganzzahlig) R100 = Rest dieser Division
Ezután az utolsó 100 éves ciklus teljes 4 éves ciklusainak (N4) és az utolsó, nem teljes 4 éves ciklus teljes éveinek (N1) számát az R100 alapján számoljuk ki:
N4 = R100/4 (ganzzahlig) N1 = Rest dieser Division
A Julián dátum ezután a következőképpen kerül kiszámításra:
JD = JD0 + N400*146097 + N100*36524 + N4*1461 + N1*365 + LT
A számok a ciklusok hosszát jelentik napokban. 1461 (3 * 365 + 366) a 4 éves ciklusra, 36524 (24 * 1461 + 1460) a 100 éves ciklusra és 146097 (3 * 36524 + 36525) a 400 éves ciklusra.
Julián dátum → Gergely-naptár
Egy dátum kiszámításához a Gergely-naptárban egy adott Julián-dátummal kiszámítják a kezdő év óta eltelt teljes 4 éves ciklusok számát (N400) és az utolsó, nem teljes 400 éves ciklus napjainak számát (R400):
N400 = (JD - JD0)/146097 (ganzzahlig) R400 = Rest dieser Division
Ezután kiszámítják a hiányos 400 éves ciklus teljes 100 éves ciklusainak számát (N100), valamint az utolsó, nem teljes 100 éves ciklus napjainak számát (R100):
N100 = R400/36524 (ganzzahlig) R100 = Rest dieser Division
A ciklus utolsó napján a számítás eredménye N100 = 4 és R100 = 0. Ebben az esetben az értékeket korrigálni kell:
falls (N100=4) setze N100=3 und R100=36524
Ezután kiszámítják a hiányos 100 éves ciklus teljes 4 éves ciklusainak (N4) számát, valamint az utolsó, hiányos 4 éves ciklusok napjának számát (R4):
N4 = R100/1461 (ganzzahlig) R4 = Rest dieser Division
Végül kiszámítják a hiányos 4 éves ciklus teljes éveinek (N1) számát, valamint az elmúlt év aktuális napját (LT):
N1 = R4/365 (ganzzahlig) LT = Rest dieser Division
A ciklus utolsó napján a számítás eredménye N1 = 4 és LT = 0. Ebben az esetben az értékeket korrigálni kell:
falls (N1=4) setze N1=3 und LT=365
Az aktuális év LJ eredményeként:
LJ = 400*N400 + 100*N100 + 4*N4 + N1
Az év (J) kiszámítása az LJ alapján az alábbiakból származik:
J = LJ + 1
A hónap (M) és a nap (D) LT-ből történő kiszámításához lásd: Átalakítás Julián dátum és Julián naptár között .
Példák
Gergely-naptár Julián-dátummal
1.1.2000 GK: SK = 0 MK = -1 LT = T + 30*(M-1) + SK + MK = 1 + 30*0 - 1 = 0 LJ = J - 1 = 1999
N400= LJ/400 = 4 R400= 399 (Rest davon)
N100= R400/100 = 3 R100= 99 (Rest davon)
N4 = R100/4 = 24 N1 = 3 (Rest davon)
JD = JD0 + N400*146097 + = 1721426 + 584388 + 109572 + 35064 + 1095 + 0 --> 2451545 JD
31.12.1600 GK: SK = 1 MK = 3 LT = T + 30*(M-1) + SK + MK = 31 + 30*11 + 1 + 3 = 365 LJ = J - 1 = 1599
N400= LJ/400 = 3 R400= 399 (Rest davon)
N100= R400/100 = 3 R100= 99 (Rest davon)
N4 = R100/4 = 24 N1 = 3 (Rest davon)
JD = JD0 + N400*146097 + N100*36524 + N4*1461 + N1*365 + LT = 1721426 + 3*146097 + 109572 + 35064 + 1095 + 365 --> 2305813 JD
Julián dátuma a Gergely-naptárban
2451545 JD: N400= (JD - JD0)/146097 = 730119/146097 = 4 R400= 145731 (Rest davon)
N100= R400/36524 = 3 R100= 36159 (Rest davon)
N4 = R100/1461 = 24 R4 = 1095 (Rest davon)
N1 = R4/365 = 3 LT = 0 (Rest davon)
LJ = 400*N400 + 100*N100 + 4*N4 + N1 = 1999 J = LJ + 1 = 2000 M = (LT+1)/30 + 1 = 1 SK = 0 MK = -1 T = LT - 30*(M-1) - (SK + MK) = 0 - 30*0 + 1 = 1 --> 1.1.2000 GK
2305813 JD: N400= (JD - JD0)/146097 = 584387/146097 = 3 R400= 146096 (Rest davon)
N100= R400/36524 = 4 R100= 0 (Rest davon)
Korrektur, da N100=4:
N100= 3 R100= 36524
N4 = R100/1461 = 24 R4 = 1460 (Rest davon)
N1 = R4/365 = 4 LT = 0 (Rest davon)
Korrektur, da N1=4:
N1 = 3 LT = 365
LJ = 400*N400 + 100*N100 + 4*N4 + N1 = 1599 J = LJ + 1 = 1600 M = (LT+1)/30 + 1 = 13
Korrektur, da M>12:
M = 12 SK = 1 MK = 3 T = LT - 30*(M-1) - (SK + MK) = 365 - 30*11 - 4 = 31
Julián dátum → Gergely-naptár: Egyéb lehetséges konverziók
Példaértékű:
JD = 2447892,5
Adjon 0,5-et a JD-hez, és egészítse be a Z egész számát, az F-be pedig a tizedes részt (a tizedespont utáni részt). Felhívjuk figyelmét, ha:
Z <2299161, akkor:
a = Z
Z> 2299161, akkor:
a = INT ((Z - 1867216.25) / 36524.25)
A = Z + 1 + a - INT (a / 4) B = A + 1524 C = INT ((B - 122.1) / 365.25) D = INT (365.25 * C) E = INT ((B - D) / 30.6001)
A nap kiszámítása:
T = B - D - INT (30.6001 * E) + F
A hónap:
M = E - 1 wenn E < 14 M = E - 13 wenn E = 14 oder 15
Az év:
Y = C - 4716 wenn m > 2 Y = C - 4715 wenn m = 1 oder 2
A következő értékeket kapjuk:
JD = 2447892,5 + 0.5 = 2447893 Z = 2447893 F = 0
Mivel Z> 2299161:
a = INT ((2447893 - 1867216.25) / 36524.25) = 15 A = 2447893 + 1 + 15 - INT (15 / 4) = 2447906 B = 2449430 C = 6705 D = 2449001 E = 14
Eredmény:
T = 1 M = E - 13 = 1 denn E = 14 Y = C - 4715 = 1990 denn m = 1
A keresett dátum 1990. január 1-je
Határozza meg a hét napját
Ez a Julián-dátum segítségével történik. Először számolja ki az adott dátum YD-jét, adja hozzá ezt 1,5-tel, és ossza el az eredményt 7-tel. Az osztás ( modulo ) fennmaradó részén a hét napja látható:
0 = Sonntag 1 = Montag ... 6 = Samstag
A példa segítségével: 1990. január 1
1. Januar 1990 = 2447892,5 2447892,5 + 1.5 = 2447894 2447894 MOD 7 = 1
1990. január 1-je hétfő volt .
Meglévő funkciók a számítógépes rendszereken
Az ilyen időbeli átalakításokat a jelen (a XXI. Század eleje) előtti vagy utáni néhány évtizedből lehet elvégezni a közös számítógépes operációs rendszerek és futásidejű környezetek (például mktime()
a C ++ és más programozási nyelvek függvényében ). On Unix-szerű rendszerek, a Julián dátumot lehet kiszámítani, hogy a „másodperc, mivel 01/01/1970 00:00 ( time_t
)” 60 * 60 * 24 = 86400 és hozzáadjuk az állandó 2440587,5. Így az ilyen átalakításokat csak további időtartamokra kell számítógépes programokban végrehajtani, vagy autonóm mikrovezérlőkön (ha ezeken nem áll rendelkezésre teljes futásidejű környezet).
web Linkek
- Német nyelvű naptárkalkulátor
- Naptár konverzió angol nyelvre ( John Walker )