tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
876
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Fadeiar Fadeiar ist offline Grünschnabel
    Registriert seit
    Oct 2009
    Beiträge
    1
    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:

    http://img257.imageshack.us/img257/5118/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?
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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
    Code vb:
    1
    2
    3
    
    Dim myTime As Date
    myTime = TimeSerial(0, 0, t)
    HHMM = Format(myTime, "h:Nn")

    Ansonsten mit deinem Code:
    Code vb:
    1
    2
    3
    4
    5
    
    Std = uMin / 60
    Min = (Std * 60) - uMin
    Std = Std - 1
     
    HHMM = Std & ":" & Format(Min, "00")
    Geändert von Yaslaw (29.10.09 um 09:51 Uhr)
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

Ähnliche Themen

  1. Zeitumrechnung
    Von Maurice16 im Forum Java
    Antworten: 7
    Letzter Beitrag: 07.12.10, 09:28
  2. Antworten: 2
    Letzter Beitrag: 12.02.08, 19:26
  3. Antworten: 0
    Letzter Beitrag: 07.08.07, 18:12
  4. Zeitumrechnung
    Von SMoeller im Forum Java
    Antworten: 4
    Letzter Beitrag: 04.10.06, 16:57
  5. Antworten: 8
    Letzter Beitrag: 14.06.04, 10:37