Seite 1 von 1

[PB4.0] Errechnung des Julianischen Tages nach Greg. Datum

Verfasst: 28.02.2006 19:56
von NicTheQuick
Alle Berechnungen habe ich der Wikipedia entnommen.

Code: Alles auswählen

Procedure.d jultag(y.l, m.l, d.l, h.l, i.l, s.l)
  Protected N400.l, N100.l, N4.l, N1.l, JD.d, MK.l, SK.l, LT.l
  
  Select m
    Case 1, 4, 5 : MK = -1
    Case 2, 6, 7 : MK = 0
    Case 3 : MK = -2
    Case 8 : MK = 1
    Case 9, 10 : MK = 2
    Case 11 : MK = 3
  EndSelect
  
  SK = 0
  If m > 2
    If y % 400 = 0
      SK = 1
    ElseIf y % 4 = 0 And y % 100
      SK = 1
    EndIf
  EndIf
  LT = d + 30 * (m - 1) + SK + MK
  
  y - 1
  N400 = y / 400
  N100 = (y % 400) / 100
  N4   = (y % 100) / 4
  N1   = y % 4
  JD   = 1721426 + N400 * 146097 + N100 * 36524 + N4 * 1461 + N1 * 365 + LT
  JD + (h / 24) - 0.5 + (i / 1440) + (s / 86400)
  ProcedureReturn JD
EndProcedure

Debug jultag(1990, 1,  1, 12, 0, 0)
Debug jultag(1990, 1,  1, 18, 0, 0)
Debug jultag(2006, 1, 14, 12, 0, 0)
Debug jultag(2000, 1,  1, 12, 0, 0)
d.l = Date()
Debug jultag(Year(d), Month(d), Day(d), Hour(d), Minute(d), Second(d))

Verfasst: 02.03.2006 14:03
von Sylvia
...und warum steht das unter "PB 4.0 Beta" und nicht unter "CT&T" :freak:

Verfasst: 02.03.2006 16:14
von NicTheQuick
Weil Doubles dabei sind. :mrgreen:

Verfasst: 02.03.2006 17:23
von Sylvia
>>Weil Doubles dabei sind.

Ist das ein Argument ? Künftig werden viele solcher Codes neue Elemente
von PB4 enthalten.

Dieses neue Unterforum dient doch in der Hauptsache dazu, klärende
Aspekte, Bugs und Unterschiede zu vorher zu behandeln.
Wahrscheinlich verstehe ich das nicht ganz... /:->

Verfasst: 02.03.2006 17:56
von NicTheQuick
Ich geb mich geschlagen. :wink: