derakustiker
Goto Top

exe Datei die eine Datumsberechnung durchführt

Hallo adminstratoren ! face-big-smile

ich bin neu hier und deswegen eventuell noch etwas unbeholfen aber ich versuche mein Problem best möglichst dazustellen.

also:

ich muss das aktuelle systemdatum in ein sogenanntes juliansches datum umwandeln also aus 27.07.2009 (tt.mm.jjjj) wird 9208 (j.gezählte tage)
das ganze konnte ich nun schon mit einer excel funktion berechnen aber nun kommt mein problem es soll ohne excel funktionieren am besten gepackt in eine exe datei! das der user nur eine exe datei anklicken muss wo so etwas wie eine messagebox aufpopt mit dem gewandelten datum.
nun hab ich leider noch nie außerhalb von programmen programmiert (vba in access usw.)

könnte mir da jemand weiterhelfen der das schon des öfteren mal gemacht hat ?


danke schonmal im vorraus

Content-Key: 121406

Url: https://administrator.de/contentid/121406

Printed on: April 23, 2024 at 21:04 o'clock

Member: Weiricth
Weiricth Jul 27, 2009 at 12:31:30 (UTC)
Goto Top
nimm vb.net dann kannste den code von vba gleich fast 1:1 importieren. des gibts auch als freeware von MS

http://www.microsoft.com/germany/express/
Member: filippg
filippg Jul 27, 2009 at 12:38:13 (UTC)
Goto Top
Hallo,

das klingt irgendwie nach Schulaufgabe. Und die sollte man zumindest größtenteils selber machen (nebenbei: euch wurde bestimmt auch einen Programmiersprache vorgegeben).

Gruß

Filipp
Member: DerAkustiker
DerAkustiker Jul 27, 2009 at 12:49:28 (UTC)
Goto Top
nene ist für den betrieb keine sorge face-wink den ersten tipp probier ich mal aus falls jemand noch ne andere lösung hat darf er gerne posten !
Mitglied: 76109
76109 Jul 27, 2009 at 14:09:56 (UTC)
Goto Top
Hallo DerAkustiker!

Aus 27.07.2009 (tt.mm.jjjj) wird 9208 (j.gezählte tage) ..

Der Umrechnung kann ich nicht ganz folgen.

Das "Julianische Datum" ist eine seit dem 1. Januar 4713 vor Christus fortlaufende Nummerierung der Tage. Der Tageswechsel erfolgt immer um 13 Uhr MEZ (12 Uhr GMT).

Das Julianische Datum für den 01.01.2000 = 2454846
Das Julianische Datum für den 27.07.2009 = 2455053

Ausserdem könntest Du mal Deinen VBA-Code posten.

Gruß Dieter
Member: miniversum
miniversum Jul 27, 2009 at 16:18:29 (UTC)
Goto Top
Deine anforderungen sind doch nur das manns anklickt, ein eingabefeld kommt zum eintagen und die ausgabe mit Umrechnung. Und in VBA hast du das ganze schon. Dann mach das doch in VB Script. Ist ja sehr ähnlich. Den code musst du also garncith groß anpassen.
Member: Pjordorf
Pjordorf Jul 27, 2009 at 16:53:33 (UTC)
Goto Top
Hallo,

und richtig.

es gibt aber auch:

Im militärischen Bereich ist das Julianische Datum eine vierstellige Zahl der Form „JTTT“, wobei „J“ die letzte Ziffer des Jahres ist und „TTT“ die Tagesnummer. Am 3. Februar 1997 wäre das Julianische Datum „7034“ gewesen.

(aus Wikipedia)

Und wie schon geschrieben, du hast es als VBA vorliegen, also mach es mit VBScript oder VB.Net.

Peter
Mitglied: 76109
76109 Jul 27, 2009 at 17:22:50 (UTC)
Goto Top
Hallo Pjordorf!

Danke, jetzt habe ich's kappiertface-smile

Gruß Dieter
Member: DerAkustiker
DerAkustiker Jul 28, 2009 at 07:06:21 (UTC)
Goto Top
Private Sub Befehl2_Click()
Dim CRLF As String
Dim NormalDate As Date .
Dim DateYear As String
Dim JulianDay As String
Dim JulianDate As String

CRLF = Chr$(13)

NormalDate = Date

DateYear = Format(NormalDate, "yy")

JulianDay = Format(Str(NormalDate - DateValue("1/1/" & _
Str(DateYear)) + 1), "000")


JulianDate = DateYear & JulianDay

x = Format(JulianDate, "000")


MsgBox "The equivalent Julian date is " & x
End Sub


so das ist mein vba code nur leider bekomm ich den unter vb nicht zum laufen was muss ich ändern außer zB date zu date.today ??
Mitglied: 27234
27234 Jul 28, 2009 at 09:17:48 (UTC)
Goto Top
Hallo,

ich bekomme das so hin:

Dim heute
Dim JD

MJD()

sub MJD()
' Quelle: Wikipedia  
' Im militärischen Bereich ist das Julianische Datum eine vierstellige Zahl der Form „JTTT“,  
' wobei „J“ die letzte Ziffer des Jahres ist und „TTT“ die Tagesnummer. Am 3. Februar 1997 wäre das Julianische Datum „7034“ gewesen.  
heute = Now()
JD = (Year(heute) mod 10) * 1000 + (DateDiff("d", "01.01." & Year(heute), heute) + 1)  
MsgBox JD

end sub

Gruß René
Mitglied: 76109
76109 Jul 28, 2009 at 09:26:43 (UTC)
Goto Top
Hallo Bolle97!

Das Format "0000" funktioniert aber nur, solange Year(heute) mod 10 ungleich 0 ist.

Mit diesem Code im vierstelligen Format:
Dim DateYear, DateDays, JulianDate, y1, d1, d2, d3

DateYear = Year(Date)

DateDays = Date - DateSerial(DateYear, 1, 1) + 1

'Format(Zahl, "000") gibt's in VBS leider nicht (nur FormatNumber, FormatDate...)  
y1 = DateYear Mod 10
d1 = DateDays \ 100  'Div Ganzzahl mit \ anstatt /  
d2 = DateDays \ 10
d2 = d2 Mod 10
d3 = DateDays Mod 10

JulianDate = y1 & d1 & d2 & d3

MsgBox "The equivalent Julian date is " & JulianDate  

Quellcode im Text-Editor unter *.vbs abspeichern und doppelklicken.

Gruß Dieter
Member: DerAkustiker
DerAkustiker Jul 29, 2009 at 05:53:56 (UTC)
Goto Top
super dank euch vor allem dir didi1954 die lösung im editor funktioniert einwandfrei !!!!! face-big-smile