Á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