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

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8812
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

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

Beitrag 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))
Zuletzt geändert von NicTheQuick am 02.03.2006 17:53, insgesamt 1-mal geändert.
Benutzeravatar
Sylvia
verheiratet<br>1. PureGolf-Gewinner
Beiträge: 487
Registriert: 29.08.2004 09:42
Wohnort: Old Europe

Beitrag von Sylvia »

...und warum steht das unter "PB 4.0 Beta" und nicht unter "CT&T" :freak:
Basic Pur = PureBasic
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8812
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Weil Doubles dabei sind. :mrgreen:
Benutzeravatar
Sylvia
verheiratet<br>1. PureGolf-Gewinner
Beiträge: 487
Registriert: 29.08.2004 09:42
Wohnort: Old Europe

Beitrag 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... /:->
Basic Pur = PureBasic
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8812
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Ich geb mich geschlagen. :wink:
Antworten