StopUhr in Min. 2 stellen nach dem komma?!

  • Hi. Ich hätte mal kurz zwei fragen. zum einen möchte ich, dass meine stoppuhr nach abschluss irgendeines vorgangs stoppt ^^ . Abschluss eines vorgangs soll hier die tastenkombination strg + x sein. irgendwie funktioniert das aber nicht. jemand ne ahnung woran das liegt?

    Und dann möchte ich noch, dass er mir die minuten nur mit 2 stellen nach dem komma anzeigt. nicht x,777777777777779 ^^

    Hier ist mal der code. ich bedanke mich. PS : (eig dachte ich, dass es schon einen ähnlichen thread geben wird, hab aber nix gefunden. falls doppelthread---> Sorry :)

    #include <GUIConstants.au3>
    Opt( "WinTitleMatchMode" , 2 )
    ;Taste zum Beenden
    HotKeySet("{ESC}", "Terminate")
    Func Terminate()
    Exit 0
    EndFunc
    HotKeySet("^x", "Test") ; wenn ich diese tastencombi drücke, sollte der zähler doch aufhören zu zählen oder?
    Func Test()
    $stopit = 0
    EndFunc
    $count = 1 ;zähler
    $time = 0 ;minuten in komma

    GUICreate("Time", 230, 100,807,504)
    GUICtrlCreateLabel("Time", 0, 0, 100, 35)
    $edit3 = GUICtrlCreateInput ("", 0,15)
    GUICtrlSetData(-1, $time)
    GUISetState()
    $stopit = 1
    While $stopit > 0
    While $count > 0
    Sleep(1150)
    $count = $count + 1
    $time = $count / 60
    GuiCtrlSetData($edit3,$time)
    WEnd
    Wend

  • Is zwar simpel, aber vielleicht hilft es weiter

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>
    HotKeySet("^x","_Exit")
    Local $hour,$min,$sec
    $start = TimerInit()

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

    While 1
    Sleep(1000)
    _TicksToTime(Int(TimerDiff($start)),$hour,$min,$sec)
    $min = StringRight('0' & $min,2)
    $sec = StringRight('0' & $sec,2)
    ToolTip($min & ':' & $sec)
    WEnd

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

    Func _Exit()
    Exit
    EndFunc

    [/autoit]

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)

  • Moin Dönn3y,

    McPoldy's Lösung ist der richtige Ansatz und Zahlen rundest du mit der Funktion 'Round()' (passender Name was? ;) ) auf die passenden Nachkommastellen.

    • Offizieller Beitrag

    Hi,

    ich hatte mal sowas gemacht:

    Spoiler anzeigen
    [autoit]

    ; Stoppuhr

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

    #include<Date.au3>
    Opt('MustDeclareVars', 1)
    HotKeySet('{esc}', '_end')
    HotKeySet('{Pause}', '_stop')

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

    While 1
    ToolTip('Stoppuhr' & @CRLF & '============' & @CRLF & _counter('2008/02/21', '11:37:00') & ' left', _
    @DesktopWidth - 100, 30)
    Sleep(1)
    WEnd

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

    Func _stop()
    While 1
    Sleep(100)
    WEnd
    EndFunc ;==>_stop

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

    Func _counter($s_Date, $s_time)
    Local $returnValue = ''
    If Not _DateIsValid($s_Date & ' ' & $s_time) Then Return -1
    Local $NumberOfSeconds = _DateDiff('s', $s_Date & ' ' & $s_time, _NowCalc())
    Return StringFormat('Days = %.02d' & @CRLF & 'Hours = %.02d' & @CRLF & 'Min = %.02d' & @CRLF & 'Sec = %.02d' & @CRLF & _
    'Msec = %.03d', $NumberOfSeconds / 86400, Mod($NumberOfSeconds / 3600, 24), Mod(($NumberOfSeconds / 60), 60), _
    Mod($NumberOfSeconds, 60), 1000 - _MSec())
    EndFunc ;==>_counter

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

    Func _MSec()
    Local $stSystemTime = DllStructCreate('ushort;ushort;ushort;ushort;ushort;ushort;ushort;ushort')
    DllCall('kernel32.dll', 'none', 'GetSystemTime', 'ptr', DllStructGetPtr($stSystemTime))
    Local $sMilliSeconds = StringFormat('%03d', DllStructGetData($stSystemTime, 8))
    $stSystemTime = 0
    Return $sMilliSeconds
    EndFunc ;==>_MSec

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

    Func _end()
    Exit (0)
    EndFunc ;==>_end

    [/autoit]

    Mega