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))