Wie Durchschnittszeit am besten berechnen, bzw wie Zeiten am besten Anzeigen?

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Bl4ck M4ch!n3.

    Wie Durchschnittszeit am besten berechnen, bzw wie Zeiten am besten Anzeigen?

    Servus!

    Ich würde gerne die Zeiten (Minuten, Sekunden und Millisekunden) von einer Stopwatch in einer Liste speichern und mit einem Button die Durchschnittszeit berechnen lassen.
    Das speichern ist ja kein Problem :

    Quellcode

    1. Private Sub Zeitsetzen()
    2. Dim elapsed As TimeSpan = Me.Stoppuhr.Elapsed
    3. Zeit = String.Format("{0:00} : {1:00} : {2:00}", elapsed.Minutes, elapsed.Seconds, elapsed.Milliseconds)
    4. Box1.Items.Add(Zeit)
    5. BoxMin.Items.Add(elapsed.Minutes)
    6. BoxSek.Items.Add(elapsed.Seconds)
    7. BoxMil.Items.Add(elapsed.Milliseconds)
    8. Me.Stoppuhr.Reset()
    9. Timer1.Enabled = False
    10. End Sub


    Ich habe wie man sieht 4 Combo-Boxen.
    Eine in der die komplette Zeit als String gespeichert wird und 3 in denen die einzelnen werte gespeichert werden.

    Hat jemand ne Idee oder einen Denk-Anstoß wie ich die Durchschnittszeit ausrechnen kann?

    mfG
    Verwalte die TimeSpans intern in einer List(Of T). Dann addierst du die Ticks auf, geteilt durch Anzahl und schon hast du den Durchschnitt. Wenn du wilslt, kannst du auf Basis der Ticks noch ein TimeSpan-Objekt erzeugen, was dir wieder Infos über Minuten etc. liefert.

    Viele Grüße, Phil.
    Okay, das mit dem Durchschnitt rechnen ist ja nicht schwer, zumindest nicht die Formel.
    Aber ich kann meine Strings in der Tabelle nicht zum rechnen benutzen, krieg dann immer eine Fehlermeldung.
    Vonwegen er kann den String nicht umwandeln o.ä.
    Das ist auch korrekt so. Schließlich könnte in dem String auch "abc" stehen und damit kann man nicht rechnen, deshalb verbietet er das rechnen mit Strings. Wenn du es so machst wie ich vorgeschlagen habe, dann musst du aber auch gar nicht mit Strings rechnen.

    Viele Grüße, Phil.
    Also entweder ich hab nen Totalschaden oder das Programm xD

    Quellcode

    1. Private Sub Zeitsetzen()
    2. Dim elapsed As TimeSpan = Me.Stoppuhr.Elapsed
    3. Dim spanmin As New List(Of TimeSpan)
    4. Zeit = String.Format("{0:00} : {1:00} : {2:00}", elapsed.Minutes, elapsed.Seconds, elapsed.Milliseconds)
    5. Box1.Items.Add(Zeit)
    6. spanmin.Add(Me.Stoppuhr.Elapsed.Minutes)
    7. Me.Stoppuhr.Reset()
    8. End Sub


    Fehlermeldung : Fehler 1 Der Wert vom Typ "Integer" kann nicht in "System.TimeSpan" konvertiert werden.

    o_O vllt bin ich auch einfach nur völlig Banane, weil ich eigentlich Mikrocontroller programmier :>
    Ich schätze der Fehler tritt bei Zeile 6 auf.
    In der dritten Zeile wird spanmin als List(Of TimeSpan) deklariert.
    In Zeile 6 wird versucht ...Elapsed.Minutes zur Liste hinzuzufügen. Minutes wird vom Typ Integer sein und Integer kann nicht implizit in TimeSpan konvertiert werden.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils