Zeitberechnung

  • Ich habe diesen Code für die Berechnung der restlichen und bisher vergangenen Zeit eines Downloads:

    [autoit]

    $zeitbisher = Round((TimerDiff($begin) / 1000) / 60, 2)
    $restzeit = Round((($fsize / $loadedbytes * Round(TimerDiff($begin) / 1000)) - Round(TimerDiff($begin) / 1000)) / 60, 2)

    [/autoit]

    Leider dauert bei dieser Berechnung OPTISCH gesehen eine Minute 100 sekunden.
    Dies ist natürlich nicht so gewollt.
    Leider bin ich nicht so der Mathematikcrack,
    und auch bei der bisherigen Berechnung hat mir ein Bekannter geholfen...

    Hoffe daher auf ein paar mathematisch Begabte Skripter,
    die mir bei dieser Berechnung helfen können... :)

    dankeschön im vorraus,
    dankeschön

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön

  • Vielleicht kannst du damit was anfangen... ;)

    Bsp. Zeitberechnung
    [autoit]


    Func simulate_loadedbytes($now, ByRef $past, ByRef $bytes)
    If $past = $now Then Return
    $past = $now
    $bytes += 1
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func getHMS($ms)
    $s = Int($ms / 1000)
    $m = Int($s / 60)
    $h = Int($m / 60)
    $s = Mod($s, 60)
    $m = Mod($m, 60)
    If StringLen($s) = 1 Then $s = "0" & $s
    If StringLen($m) = 1 Then $m = "0" & $m
    If StringLen($h) = 1 Then $h = "0" & $h
    Dim $aTime[3] = [$h, $m, $s]
    Return $aTime
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    $fsize = 45
    $loadedbytes = 0
    $saveseconds = 0
    $milliseconds_left = ((((99 * 60) + 59) * 60) + 59) * 1000
    $begin = TimerInit()
    While Not ($fsize = $loadedbytes)
    $milliseconds = TimerDiff($begin)
    $aZeit = getHMS($milliseconds)
    simulate_loadedbytes($aZeit[2], $saveseconds, $loadedbytes)
    If $loadedbytes Then $milliseconds_left = (($fsize / $loadedbytes * $aZeit[2]) - $aZeit[2]) * 1000
    $aRestzeit = getHMS($milliseconds_left)
    $output = "Zeit: " & $aZeit[0] & ":" & $aZeit[1] & ":" & $aZeit[2]
    $output &= @CRLF
    $output &= "Restzeit: " & $aRestzeit[0] & ":" & $aRestzeit[1] & ":" & $aRestzeit[2]
    ToolTip($output)
    WEnd
    MsgBox(0, "Info", "Download beendet!")

    [/autoit]