Hilfe bei Zeitumrechnung HH:MM

Fadeiar

Grünschnabel
Hallo zusammen, ich soll hier von der FH aus ein Programm schreiben, das die Flugzeit eines Flugzeugs in HH:MM ausgibt, soweit hab ich das Programm fertig, allerdings rundet VB immer nach oben und vernachlässigt die Nachkommazahlen nicht bei "long", sodass dann werte wie 13:-11 (13stunden minus 11 min) rauskommen, statt 12:49, hier der Code:

flugo.jpg


Private Sub Command1_Click()
'Berechnung der Flugzeit eines Flugzeugs aus:
'Flugstrecke (s)
'Fluggeschwindigkeit (v1)
'Windgeschwindigkeit (v2)
'Flugzeit (t)
'Gleichförmige Bewegung s = v*t => t = s/v
'Formel für die Berechnung: t = s / (v1 + v2) bzw t = s / (v1 - v2)

Dim s As Single
Dim v1 As Single
Dim v2 As Single
Dim t As Single
Dim uMin As Long
Dim Std As Long, Min As Long
Dim HHMM As String



s = Val(Text1.Text)
v1 = Val(Text2.Text)
v2 = Val(Text3.Text)

If s < 0 Then
MsgBox ("Bitte eine Strecke > 0km angeben")
End If

If v1 < 0 Then
MsgBox ("Bitte eine Fluggeschwindigkeit > 0km/h angeben")
End If

t = s / (v1 + (v2))

uMin = t * 60

Std = uMin / 60
Min = uMin - (Std * 60)

HHMM = Std & ":" & Format(Min, "00")

Label5.Caption = HHMM

End Sub

Hat jemand eine Idee wie ich das anders schreiben kann?
 
In dem Format kannst du nicht auch noch rechnen.

Warum arbeitest du nicht mit dem Typ Date? Da kannst du die ganze Umrechung der Sekunden in Stunden und Minuten dem VB überlassen (Aber Vorsicht, mit dem Format werden die Sekunden nicht gerundet sondern abgeschnitten
Visual Basic:
Dim myTime As Date
myTime = TimeSerial(0, 0, t)
HHMM = Format(myTime, "h:Nn")

Ansonsten mit deinem Code:
Visual Basic:
Std = uMin / 60
Min = (Std * 60) - uMin
Std = Std - 1

HHMM = Std & ":" & Format(Min, "00")
 
Zuletzt bearbeitet:
Zurück