vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Julianisches Datum aus "normaler" VB.NET DateTime errechnen 
Autor: chritsch
Datum: 27.07.06 23:28

Hallo Drapondur

Hier eine Funkion, welche das Julianische Datum (JD) als Decimal zurück gibt:

	Protected Function BerechneJD(ByVal datum As DateTime) As Decimal
 
		Dim jahr As Integer = datum.Year
		Dim monat As Integer = datum.Month
		If monat <= 2 Then
			jahr -= 1
			monat += 12
		End If
 
		Dim stunde As Integer = datum.Hour
		Dim minute As Integer = datum.Minute
		Dim sekunde As Integer = datum.Second
		Dim h As Decimal = CDec(stunde / 24 + minute / 1440 + sekunde / 86400)
 
		Dim b As Decimal
		If _gKalender = True Then
			Dim a As Decimal = Math.Floor(jahr / 100D)
			b = 2 - a + Math.Floor(a / 4D)
		Else
			b = 0
		End If
 
		Dim tag As Integer = datum.Day
		Return CDec(Math.Floor(365.25D * (jahr + 4716)) + Math.Floor(30.6001D * ( _
  monat + 1)) + tag + h + b - 1524.5D)
 
	End Function
Für das JD wird auch die Uhrzeit berücksichtigt.

Die Boolean _gKalender gibt an, ob datum im Bereich des gregorianischen (True) oder julianischen Kalendersystem (False - nicht verwechseln mit dem JD!!!) liegt: Gregorianische Kalenderreform

Weitere modifizierte Daten, die auf dem JD beruhen:
	Public ReadOnly Property JulianischesDatum(ByVal typ As JDType) As Decimal
		Get
			Select Case typ
				Case JDType.JD	' Julianisches Datum (JD)
					Return _jDatum
 
				Case JDType.CJD ' Chronologisches JD
					Return Math.Floor(_jDatum + 0.5D)
				Case JDType.MJD ' Modifiziertes JD
					Return _jDatum - 2400000.5D
 
				Case JDType.J1900	' Standardepoche J1900
					Return _jDatum - 2415020D
				Case JDType.J2000	' Standardepoche J2000
					Return _jDatum - 2451545D
 
				Case JDType.B1850	' Besseljahr B1850
					Return _jDatum - 2396758.203D
				Case JDType.B1900	' Besseljahr B1900
					Return _jDatum - 2415020.313D
				Case JDType.B1950	' Besseljahr B1950
					Return _jDatum - 2433282.423D
				Case JDType.B2000	' Besseljahr B2000
					Return _jDatum - 2451544.533D
				Case JDType.B2050	' Besseljahr B2050
					Return _jDatum - 2469806.643D
				Case JDType.B2100	' Besseljahr B2100
					Return _jDatum - 2488068.753D
			End Select
			Return _jDatum
		End Get
	End Property
Hoffe dass dir das weiter hilft...

Hitsch

-----
"There's never enough time to do all the nothing you want."
(Calvin and Hobbes)

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Julianisches Datum aus "normaler" VB.NET DateTime ...1.431Drapondur27.07.06 22:26
Re: Julianisches Datum aus "normaler" VB.NET DateT...1.519chritsch27.07.06 23:28
Re: Julianisches Datum aus "normaler" VB.NET DateT...765Drapondur28.07.06 18:44

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel