Zeitintervall

MapZapper

Grünschnabel
Ich brauche dringenst hilfe! Ich sitze gerade bei der Arbeit und mir wird gekündigt , wenn ich bis Freitag ein Projekt nicht fertig bekomme! Ich weiss nur nicht, wie man ein Zeitintervall berechent . Ich setze eine Anfangs und eine Endzeit in eine Variable, die ich dann voneinander abziehe, oder wie?! Das Problem ist nur, die Zeit lautet zB: 10:23:43. Das kann der ja nicht berechnen. Wie errechne ich das Intervall ZWISCHEN den beiden Zeiten?:rolleyes: :eek:
 
Also als erstes meldest du mal diese win32api funktion an
Public Declare Function GetTickCount Lib "kernel32" () As Long

diese gibt dir die zeit in millisekunden die seit dem start von windows vergangen ist und zwar als Long das kannst du jetzt fröhlich in einer variable abspeichern

dim time1 as long
dim time2 as long
dim timeErg as long

time1 = GetTickCount()
...

'irgendow weiter unten im programm
time2 = GetTickCount()
timeErg = time2-time1

dann hast du die anzahl der millisekunden die zwischen den zwei aufrufen vergangen sind

timeErg dividiert durch 1000 = Sekunden
so kannst du dir schön die zeit ausrechnen

mfg

Leukos
 
Okay, cool, danke. Aber ich habe es gemacht und es läuft nicht! Da steht was davon, dass Declare-Anweisungen als öffentliche Mitglieder von Objektmodulen nicht zugelassen sind. ?! Was heisst das denn? Du musst wissen, ich habe noch nie mit Zeit was gemacht. Bitte hilf mir noch mal. Ich habe meinetwegen einen Button. Wenn man diesen drückt, wird die Zeit gestoppt, bis man den zweiten Button drückt. Eine TextBox soll nun die Zeit ausgeben. Wie mache ich das, dass sich auch die Typen vertragen und so. Bitte erklärs mir!!! BIIIIITTEEEEE!
 
du scheinst dich ja auch mit vb noch nicht so toll auszukennen denn wenn du etwas Public definierst wie in dem falle der win32 funktion dann musst du sie auch im allgemeinen bereich definieren das heisst ganz oben im programm wo noch kein event aufgerufen wird

mfg

leukos
 
also hier der code

Option Explicit
Private Declare Function GetTickCount Lib "kernel32" () As Long
Dim time1 As Long '1te Zeitvariable
Dim time2 As Long '2te Zeitvariable
Dim timeerg As Long 'Zeitergebnisvariable
Dim hundertstel As String
Dim sekunden As String
Dim minuten As String

Private Sub Command1_Click()
time1 = GetTickCount() 'bei klick auf start Zeit abfragen und in time1 Schreiben
Timer1.Enabled = True 'den timer aktivieren
End Sub

Private Sub Command2_Click()
Timer1.Enabled = False 'den timer bei klick auf stop deaktivieren
End Sub


Private Sub Timer1_Timer()
time2 = GetTickCount() 'die aktuelle zeit in die zweite zeitvariable einlesen
timeerg = time2 - time1 'so erhalten wir die millisekunden die seit dem start vergangen in die timeerg variable
Text1.Text = timeerg 'Hier wird die anzahl der millisekunden ohne formatierung ausgegeben
timeerg = timeerg / 10 'so erhalten wir die hundertstel
hundertstel = timeerg Mod 100
timeerg = timeerg - hundertstel
If hundertstel < 10 Then
hundertstel = "0" & hundertstel
End If
timeerg = timeerg / 100
sekunden = timeerg Mod 60
If sekunden < 10 Then
sekunden = "0" & sekunden
End If
minuten = timeerg / 60
minuten = Int(minuten)
If minuten < 10 Then
minuten = "0" & minuten
End If
Dim zeit As String
zeit = minuten & ":" & sekunden & ":" & hundertstel 'hier wird die zeit in den zeitstring geschrieben
Text2.Text = zeit 'und hier ausgegeben
End Sub

du brauchst für das projekt eine form ein modul 2 buttons 2 textboxen

wenn du willst kann ich dir das projekt aber auch schicken brauche nur deine e-mail

mfg

leukos
 
Zuletzt bearbeitet:
hallo forum!


hab mir das jetzt mal durchgelesen, was in dem code steht, da ich nicht so versiert bin habe ich noch einige fragen

ich schreibe gerade ein proggie in MS Access
das sieht so aus:

habe zwei eingabefelder "stunde" und "minute"
dort gibt man zb. 95 stunden und 93 sekunden ein.
dann drückt man knopf!

dies wird dann in zwei variablen geschrieben wobei die variable der stunde, diese in sekunden umrechnet * 60
jetzt werden die sekunden dazugerechnet - aus dem anderen textfeld

jetzt geschehen ein paar eingaben, von einigen mitarbeitern sodass ich da einige hunderttausend sekunden drinnenstehen habe, dies soll nun wieder in stunden umgerechnet werden dh. in ein gültiges format 20 h 13 s.

hier hab ich probleme mit 21 h u. 95 sek. (!?)

wie mach ich das - soll ich Variable "sekunde"/100 mod 60 machen!? -- aber da kommt irgendwas raus

gut einfaches beispiel (unerklärlich!) - ohne programm gerechnet!
10 stunden 23 sekunden
10*60 = 600 sekunden
+23
= 623 ---> wenn man jetzt 623/60 rechnet sollte doch meines wissens nach 10,23 rauskommen... :(

hehe kommt aber 10.383° raus!?


hab ich einen fehler in der mathematik gefunden?
oder bin ich einfach zu dumm zum rechnen?
thx. für hilfe
 
mittlerweile bin ich draufgekommen wie der globus sich dreht

man muss den rest die .383 * 100 /60 rechnen!
oder irgendwie so,
glaub den rest der division *100/60!?

gibts da vielleicht was einfacheres?
 
weis das denn niemand wie man zwei zeiten addiert

oder wie man sekunden in minuten umrechnet?

es geht auch anders, wenn jemand wüsste wie der befehl ist..
möchte die zwei zahlen rechts neben dem komma in eine Variable speichern!
und alle zahlen links neben dem komma auch in eine variable!

vielleicht hat da jemand mehr ahnung!?
 
Zurück