1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Chris_pac

Beiträge von Chris_pac

  • Zeitrechner

    • Chris_pac
    • 3. Oktober 2022 um 18:12

    Hi Bitnugger , Dankeschön für den Hinweis, ich werde versuchen die Funktion rein zu machen.

    Ich habe noch eine Frage:

    Ist es eigentlich möglich, mehrere Variablen in eine Variable zu packen?

    z.B. $id_all_input = $id1, $id2, $id3.... usw. So kann ich eine globale Kontrolle haben. Wenn ich also zum Beispiel die Farbe ändern möchte, kann ich einfach die Variable $id_all_input verwenden, anstatt jedes Mal so zu schreiben:

    Code
    Local $idButton = GUICtrlCreateButton("Button", 210, 170, 85, 25)
    GUICtrlSetColor = (-1, $COLOR_RED)


    Grüße

    Chris

  • Zeitrechner

    • Chris_pac
    • 1. Oktober 2022 um 16:33

    Velted

    Coole Sache, Danke dir!

    Ich habe leider dien Code zu spät gesehen. Aber die Berechnung habe ich noch geändert :D

    Hier ist meine aktuelle version:

    C
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    #include <Date.au3>
    #include 'MouseHover.au3'
    
    
    Opt('MustDeclareVars', 1)
    
    Global Const $COLOR_HOOVER = 0xD7EDFF ; helles blau
    Global Const $COLOR_NORMAL = 0xE6E6E6 ; helles grau
    Global Const $g_iMouseHoverTime = RegRead('HKEY_CURRENT_USER\Control Panel\Mouse', 'MouseHoverTime') ; 400 ms
    
    Global $ankunftzeit, $pause_bgn_zeit, $pause_end_zeit
    Global $datum = _DateDayOfWeekDeutsch(@WDAY) & ", " & _NowDate()
    
    #Region ### START Koda GUI section ### Form=c:\users\wkivag15\documents\zeitrechner_neu_hgui.kxf
    Global $g_hGUI = GUICreate("Zeitrechner", 520, 353, 617, 296)
    GUISetFont(12, 400, 0, "Calibri")
    
    Global $idLbl_datum = GUICtrlCreateLabel($datum, 16, 22, 250, 29)
    GUICtrlSetFont(-1, 14, 400, 0)
    
    Global $idInp_ankunft = GUICtrlCreateInput("", 128, 80, 80, 29, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER))
    GUICtrlSetLimit(-1, 5)
    GUICtrlCreateLabel("Uhr", 210, 80, 30, 29)
    
    Global $idInp_pause_bgn = GUICtrlCreateInput("", 128, 119, 80, 29, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER))
    GUICtrlSetLimit(-1, 5)
    GUICtrlCreateLabel("Uhr", 210, 119, 30, 29)
    
    Global $idInp_pause_end = GUICtrlCreateInput("", 128, 159, 80, 29, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER))
    GUICtrlSetLimit(-1, 5)
    GUICtrlCreateLabel("Uhr", 210, 159, 30, 29)
    
    Global $idInp_feierabend = GUICtrlCreateInput("", 371, 80, 95, 29, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER))
    GUICtrlSetLimit(-1, 5)
    GUICtrlCreateLabel("Uhr", 470, 80, 30, 29)
    
    Global $idBtn_calculate = GUICtrlCreateButton("Berechnen", 270, 159, 222, 29)
    
    Global $idBtn_ankunft = GUICtrlCreateButton("Ankunft", 16, 80, 107, 29)
    GUICtrlSetTip(-1, 'Jetzige Zeit Eingeben')
    _MouseHover_Register(-1, _HoverBkColor, _LeaveBkColor, 1)
    
    Global $idBtn_pause_bgn = GUICtrlCreateButton("Pause Begin", 16, 120, 107, 29)
    GUICtrlSetTip(-1, 'Jetzige Zeit Eingeben')
    _MouseHover_Register(-1, _HoverBkColor, _LeaveBkColor, 1)
    
    Global $idBtn_pause_end = GUICtrlCreateButton("Pause Ende", 16, 160, 107, 29)
    GUICtrlSetTip(-1, 'Jetzige Zeit Eingeben')
    _MouseHover_Register(-1, _HoverBkColor, _LeaveBkColor, 1)
    
    Global $idLbl_feierabend = GUICtrlCreateLabel("Feierabend", 270, 80, 110, 29)
    
    Global $idLbl_Label6 = GUICtrlCreateLabel("Soll-Arbeitzeit", 270, 119, 116, 29)
    Global $idInp_soll_zeit = GUICtrlCreateInput("07:48", 371, 119, 95, 29, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER))
    GUICtrlSetLimit(-1, 5)
    GUICtrlCreateLabel("Std.", 470, 119, 30, 29)
    
    Global $idLbl_laenge_pause = GUICtrlCreateLabel("Länge der Pause", 16, 224, 125, 25)
    Global $idInp_laenge_der_pause = GUICtrlCreateLabel("", 170, 224, 80, 29)
    
    Global $idLbl_Label8 = GUICtrlCreateLabel("Frühester Feierabend", 14, 260, 175, 25)
    Global $idInp_frue_zeit = GUICtrlCreateLabel("", 170, 260, 80, 29)
    
    Global $idLbl_Label9 = GUICtrlCreateLabel("Spätester Feierabend", 14, 298, 168, 25)
    Global $idInp_spaet_zeit = GUICtrlCreateLabel("", 170, 298, 80, 29)
    
    Global $idLbl_Label7 = GUICtrlCreateLabel("Tatsächliche Arbeitzeit", 270, 224, 186, 25)
    Global $idInp_tats_zeit = GUICtrlCreateLabel("", 430, 224, 80, 29)
    
    Global $idLbl_Label4 = GUICtrlCreateLabel("Überstunden heute", 270, 260, 183, 25)
    Global $idInp_ueberstunden_heute = GUICtrlCreateLabel("", 430, 260, 80, 29)
    
    Global $idLbl_Label10 = GUICtrlCreateLabel("Pause nach 6 Stunden", 270, 298, 187, 25)
    Global $idInp_pause_6std = GUICtrlCreateLabel("", 430, 298, 80, 29)
    
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    GUIRegisterMsg($WM_COMMAND, '_WM_COMMAND')
    
    Func _WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
        Local $id = BitAND($wParam, 0x0000FFFF)
        Local $code = BitShift($wParam, 16)
        If $id = $idInp_ankunft And $code = $EN_UPDATE Then
            GUICtrlSetData($idInp_ankunft, _FormatInputNumber(GUICtrlRead($idInp_ankunft)))
        ElseIf $id = $idInp_pause_bgn And $code = $EN_UPDATE Then
            GUICtrlSetData($idInp_pause_bgn, _FormatInputNumber(GUICtrlRead($idInp_pause_bgn)))
        ElseIf $id = $idInp_pause_end And $code = $EN_UPDATE Then
            GUICtrlSetData($idInp_pause_end, _FormatInputNumber(GUICtrlRead($idInp_pause_end)))
        ElseIf $id = $idInp_feierabend And $code = $EN_UPDATE Then
            GUICtrlSetData($idInp_feierabend, _FormatInputNumber(GUICtrlRead($idInp_feierabend)))
        ElseIf $id = $idInp_soll_zeit And $code = $EN_UPDATE Then
            GUICtrlSetData($idInp_soll_zeit, _FormatInputNumber(GUICtrlRead($idInp_soll_zeit)))
        EndIf
        Return $GUI_RUNDEFMSG
    EndFunc   ;==>_WM_COMMAND
    
    Func _FormatInputNumber($iNumber)
        If StringRegExp($iNumber, '^:|[^:\d]|:.*:') Then Return StringTrimRight($iNumber, 1) And GUICtrlSetBkColor($iNumber, 0xFF9999)
        Local $tmp = StringSplit($iNumber, ":")
        Switch $tmp[0]
            Case 1
                ; If first digit is > 2, lets say 8 then write 08:
                If StringLeft($tmp[1], 1) > 2 Then $tmp[1] = "0" & $tmp[1] & ":"
                ; values from 00:00 to 23:59 are possible
                If $tmp[1] > 23 Then Return StringTrimRight($iNumber, 1)
                ; user types in only the digits, the : is inserted automatically
                If StringLen($tmp[1]) = 2 Then $tmp[1] &= ":"
                If StringLen($tmp[1]) > 3 Then Return "don't fool me !"
                Return $tmp[1]
            Case 2
                If StringLen($tmp[1]) < 2 Then $iNumber = "0" & $tmp[1] & ":"
                ; If the users types in 12:7 then the input should just show 12:
                If StringLeft($tmp[2], 1) > 5 Then Return StringTrimRight($iNumber, 1)
                Return $iNumber
        EndSwitch
    EndFunc   ;==>_FormatInputNumber
    
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                Exit
    
            Case $idBtn_ankunft
                $ankunftzeit = (_NowTime(4))
                GUICtrlSetData($idInp_ankunft, $ankunftzeit)
    
            Case $idBtn_pause_bgn
                $pause_bgn_zeit = (_NowTime(4))
                GUICtrlSetData($idInp_pause_bgn, $pause_bgn_zeit)
    
            Case $idBtn_pause_end
                $pause_end_zeit = (_NowTime(4))
                GUICtrlSetData($idInp_pause_end, $pause_end_zeit)
    
            Case $idBtn_calculate
                GUICtrlSetColor($idLbl_Label9, 0xFF0000)
                GUICtrlSetColor($idInp_spaet_zeit, 0xFF0000)
                _Std_Uhr()
                _ComputeAll()
                _Reset()
    
        EndSwitch
    WEnd
    
    Func _Reset()
        If GUICtrlRead($idInp_spaet_zeit) > '23:59' Or GUICtrlRead($idInp_laenge_der_pause) > '07:48' Then
            MsgBox(1, "Falsche Zeit", 'Bitte überprüfen Sie die Zeitangaben' & @CRLF & @CRLF & 'Alle Zahlen wird zurückgesetzt')
            GUICtrlSetData($idInp_ankunft, "00:00")
            GUICtrlSetData($idInp_pause_bgn, "00:00")
            GUICtrlSetData($idInp_pause_end, "00:00")
            GUICtrlSetData($idInp_feierabend, "00:00")
            GUICtrlSetData($idInp_laenge_der_pause, "00:00")
            GUICtrlSetData($idInp_frue_zeit, "00:00")
            GUICtrlSetData($idInp_spaet_zeit, "00:00")
            GUICtrlSetData($idInp_tats_zeit, "00:00")
            GUICtrlSetData($idInp_ueberstunden_heute, "00:00")
            GUICtrlSetData($idInp_pause_6std, "00:00")
        EndIf
    EndFunc   ;==>_Reset
    
    ; Die Funktion, die aufgerufen wird, wenn sich die Maus ueber dem Control-Element befindet
    ; Als Parameter bekommt man die Control-ID, so kann man die Funktion fuer mehrere Elemente
    ; verwenden.
    Func _HoverBkColor($idCtrl)
        GUICtrlSetBkColor($idCtrl, $COLOR_HOOVER) ; als Beispiel wird hier die Hintergrundfarbe geaendert
    EndFunc   ;==>_HoverBkColor
    
    ; Die Funktion, die aufgerufen wird, wenn die Maus das Control-Element verlaesst
    ; Als Parameter bekommt man die Control-ID, so kann man die Funktion fuer mehrere Elemente
    ; verwenden.
    Func _LeaveBkColor($idCtrl)
        GUICtrlSetBkColor($idCtrl, $COLOR_NORMAL) ; als Beispiel wird hier die Hintergrundfarbe geaendert
    EndFunc   ;==>_LeaveBkColor
    
    Func _Std_Uhr()
        GUICtrlCreateLabel("Std.", 210, 224, 30, 29)
        GUICtrlCreateLabel("Uhr", 210, 260, 30, 29)
        GUICtrlCreateLabel("Uhr", 210, 298, 30, 29)
        GUICtrlSetColor(-1, 0xFF0000)
        GUICtrlCreateLabel("Std.", 470, 224, 30, 25)
        GUICtrlCreateLabel("Std.", 470, 260, 30, 25)
        GUICtrlCreateLabel("Uhr", 470, 298, 30, 25)
    EndFunc   ;==>_Std_Uhr
    
    Func _DateDayOfWeekDeutsch($iDayNum, $iShort = 0)
        ; The first element (0) is intentionally empty. The valid range is 1 - 7. It is important
        ; this empty element is preserved or the days will be off by one.
        Local Const $aDayOfWeek[8] = ["", "Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
        Select
            Case Not StringIsInt($iDayNum) Or Not StringIsInt($iShort)
                Return SetError(1, 0, "")
            Case $iDayNum < 1 Or $iDayNum > 7
                Return SetError(1, 0, "")
            Case Else
                Select
                    Case $iShort = 0
                        Return $aDayOfWeek[$iDayNum]
                    Case $iShort = 1
                        Return StringLeft($aDayOfWeek[$iDayNum], 3)
                    Case Else
                        Return SetError(1, 0, "")
                EndSelect
        EndSelect
    EndFunc   ;==>_DateDayOfWeekDeutsch
    
    
    Func _ComputeAll()
        ConsoleWrite('_ComputeAll(' & _NowTime() & ')' & @CRLF)
        Local $sTime, $iTime, $iTime1, $iTime2, $iTime3, $iPause
    
    ;~     länge Pause
        $iTime1 = _GetMins($idInp_pause_bgn)  ; Minuten
        $iTime2 = _GetMins($idInp_pause_end)  ; Minuten
        $sTime = _SubTime($iTime2, $iTime1)   ; hh:nn
        $iPause = @extended
        GUICtrlSetData($idInp_laenge_der_pause, $sTime)
    
    ;~     tats arbeitszeit
        $iTime1 = _GetMins($idInp_ankunft)
        $iTime2 = _GetMins($idInp_feierabend)
        $sTime = _SubTime($iTime2 - $iPause, $iTime1)
        GUICtrlSetData($idInp_tats_zeit, $sTime)
    
    ;~     überstd heute
        $iTime1 = _GetMins($idInp_tats_zeit)
        $iTime2 = _GetMins($idInp_soll_zeit)
        $sTime = _SubTime($iTime1, $iTime2)
        $iTime = @extended
        If $iTime < 1 Then $sTime = '00:00'                          ; "00:00"
    ;~     If $iTime < 1 Then $sTime = '' & $sTime ; "-02:15"
        GUICtrlSetData($idInp_ueberstunden_heute, $sTime)
    
    ;~     früh feierabend
        $iTime1 = _GetMins($idInp_ankunft)
        $iTime2 = _GetMins($idInp_soll_zeit)
        $iTime3 = _GetMins($idInp_laenge_der_pause)
        $iTime = $iTime1 + $iTime2 + $iTime3
        $sTime = StringRight('0' & Int($iTime / 60), 2) & ':' & StringRight('0' & Mod($iTime, 60), 2)
        GUICtrlSetData($idInp_frue_zeit, $sTime)
    
    ;~     spä Feierabend
    ;~     Local    $max_arbeit_zeit = "10:00"
        $iTime1 = _GetMins($idInp_ankunft)
        $iTime2 = _GetMins('10:00')
        $iTime3 = _GetMins($idInp_laenge_der_pause)
        $iTime = $iTime1 + $iTime2 + $iTime3
        $sTime = StringRight('0' & Int($iTime / 60), 2) & ':' & StringRight('0' & Mod($iTime, 60), 2)
        GUICtrlSetData($idInp_spaet_zeit, $sTime)
    
    ;~     pause nach 6 std
        $iTime1 = _GetMins($idInp_ankunft)
        $iTime2 = _GetMins('06:00')
        $iTime = $iTime1 + $iTime2
        $sTime = StringRight('0' & Int($iTime / 60), 2) & ':' & StringRight('0' & Mod($iTime, 60), 2)
        GUICtrlSetData($idInp_pause_6std, $sTime)
    EndFunc   ;==>_ComputeAll
    
    Func _GetMins($idCtrl) ; idCtrl or string eg. "08:15"
        Local $aSplit = StringSplit(IsString($idCtrl) ? $idCtrl : GUICtrlRead($idCtrl), ':', 2)
        If UBound($aSplit) < 2 Then Exit 999
        Return $aSplit[0] * 60 + $aSplit[1] ; Minuten
    EndFunc   ;==>_GetMins
    
    ; $iTime1 - $iTime2 (in Minuten)
    Func _SubTime($iTime1, $iTime2)
        Local $_iTime = $iTime1 - $iTime2
        Local $_sTime = StringRight('0' & Int($_iTime / 60), 2) & ':' & StringRight('0' & Mod($_iTime, 60), 2)
        Return SetExtended($_iTime, $_sTime) ; hh:nn and @extended = Minuten
    EndFunc   ;==>_SubTime
    Alles anzeigen

    Für die Hover-Funktion muss ich leider ein anderes Skript verlinken und das muss im gleichen Ordner liegen.

    Im Moment versuche ich, das Design wie das hier zu bearbeiten

    Es macht wirklich Spaß, AutoIT zu lernen!

    Ich freue mich sehr, wenn jemand meinen Code optimieren kann.

    Viele Grüße

    Chris

  • Zeitrechner

    • Chris_pac
    • 30. September 2022 um 21:13

    Kanashius

    Einfach Mindblowing! der Code ist aus meiner Sicht wirklich sauber :D

    für mich ist der Code leider bissl schwer zu verdauen. lol

    Ich habe nur Probleme mit der Flexibilität des Designs:

    - Wie füge ich ein neues Label + Eingabefeld wie "Ankunft" + "Ankunft Eingabefeld" ein?

    - Ich konnte z.B. nicht die Position zwischen Feierabend und Zollzeit tauschen, oder wenn ich die Zollzeit lösche, kam nur ein Fehler raus.

    Ich brauche nohcmal eure Erklärungen bitte.


    Bitnugger

    Dein Code war für mich wirklich leichter zu verstehen und auch das Design anzupassen. So habe ich es soweit geschafft:

    C
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    ;~ #include <Array.au3>
    ;~ #include <Debug.au3>
    #include <Date.au3>
    
    Opt('MustDeclareVars', 1)
    
    Global $ankunftzeit, $pause_bgn_zeit, $pause_end_zeit, $datum
    $datum = _DateDayOfWeekDeutsch(@WDAY) & ", " & _NowDate()
    
    
    #Region ### START Koda GUI section ### Form=c:\users\wkivag15\documents\zeitrechner_neu_hgui.kxf
    Global $g_hGUI = GUICreate("Zeitrechner", 520, 353, 617, 296)
    GUISetFont(12, 400, 0, "Calibri")
    Global $idLbl_datum = GUICtrlCreateLabel($datum, 16, 22, 250, 29)
    GUICtrlSetFont(-1, 14, 400, 0)
    
    Global $idBtn_ankunft = GUICtrlCreateButton("Ankunft", 16, 80, 107, 29)
    Global $idInp_ankunft = GUICtrlCreateInput("08:00", 128, 80, 80, 29, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
                            GUICtrlCreateLabel ("Uhr", 210, 80, 30, 29)
    
    Global $idBtn_pause_bgn = GUICtrlCreateButton("Pause Begin", 16, 120, 107, 29)
    Global $idInp_pause_bgn = GUICtrlCreateInput("12:00", 128, 119, 80, 29, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
                            GUICtrlCreateLabel ("Uhr", 210, 119, 30, 29)
    
    Global $idBtn_pause_end = GUICtrlCreateButton("Pause Ende", 16, 160, 107, 29)
    Global $idInp_pause_end = GUICtrlCreateInput("12:30", 128, 159, 80, 29, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
                            GUICtrlCreateLabel ("Uhr", 210, 159, 30, 29)
    
    Global $idLbl_feierabend = GUICtrlCreateLabel("Feierabend", 270, 80, 110, 29)
    Global $idInp_feierabend = GUICtrlCreateInput("18:00", 371, 80, 95, 29, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
                            GUICtrlCreateLabel ("Uhr", 470, 80, 30, 29)
    
    Global $idLbl_Label6 = GUICtrlCreateLabel("Soll-Arbeitzeit", 270, 119, 116, 29)
    Global $idInp_soll_zeit = GUICtrlCreateInput("07:48", 371, 119, 95, 29, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
                            GUICtrlCreateLabel ("Std.", 470, 119, 30, 29)
    
    Global $idLbl_laenge_pause = GUICtrlCreateLabel("Länge der Pause", 16, 224, 125, 25)
    Global $idInp_laenge_der_pause = GUICtrlCreateLabel("", 170, 224, 80, 29)
    
    Global $idLbl_Label8 = GUICtrlCreateLabel("Frühester Feierabend", 14, 260, 175, 25)
    Global $idInp_frue_zeit = GUICtrlCreateLabel("", 170, 260, 80, 29)
    
    Global $idLbl_Label9 = GUICtrlCreateLabel("Spätester Feierabend", 14, 298, 168, 25)
    Global $idInp_spaet_zeit = GUICtrlCreateLabel("", 170, 298, 80, 29)
    
    Global $idLbl_Label7 = GUICtrlCreateLabel("Tatsächliche Arbeitzeit", 270, 224, 186, 25)
    Global $idInp_tats_zeit = GUICtrlCreateLabel("", 430, 224, 80, 29)
    
    Global $idLbl_Label4 = GUICtrlCreateLabel("Überstunden heute", 270, 260, 183, 25)
    Global $idInp_ueberstunden_heute = GUICtrlCreateLabel("", 430, 260, 80, 29)
    
    Global $idLbl_Label10 = GUICtrlCreateLabel("Pause nach 6 Stunden", 270, 298, 187, 25)
    Global $idInp_pause_6std = GUICtrlCreateLabel("", 430, 298, 80, 29)
    
    Global $idBtn_calculate = GUICtrlCreateButton("Berechnen", 270, 159, 222, 29)
    
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                Exit
    
            Case $idBtn_ankunft
                $ankunftzeit = (_NowTime(4))
                GUICtrlSetData($idInp_ankunft, $ankunftzeit)
    
            Case $idBtn_pause_bgn
                $pause_bgn_zeit = (_NowTime(4))
                GUICtrlSetData($idInp_pause_bgn, $pause_bgn_zeit)
    
            Case $idBtn_pause_end
                $pause_end_zeit = (_NowTime(4))
                GUICtrlSetData($idInp_pause_end, $pause_end_zeit)
    ;~             _ComputeAll()
    
            Case $idBtn_calculate
                GUICtrlSetColor($idLbl_Label9, 0xFF0000)
                GUICtrlSetColor ($idInp_spaet_zeit, 0xFF0000)
                _Std_Uhr()
                _ComputeAll()
    
        EndSwitch
    WEnd
    
    
    Func _Std_Uhr ()
        GUICtrlCreateLabel ("Std.", 210, 224, 30, 29)
        GUICtrlCreateLabel ("Uhr", 210, 260, 30, 29)
        GUICtrlCreateLabel ("Uhr", 210, 298, 30, 29)
        GUICtrlSetColor (-1, 0xFF0000)
        GUICtrlCreateLabel ("Std.", 470, 224, 30, 25)
        GUICtrlCreateLabel ("Std.", 470, 260, 30, 25)
        GUICtrlCreateLabel ("Uhr", 470, 298, 30, 25 )
    EndFunc
    
    Func _DateDayOfWeekDeutsch($iDayNum, $iShort = 0)
    ; The first element (0) is intentionally empty. The valid range is 1 - 7. It is important
    ; this empty element is preserved or the days will be off by one.
    Local Const $aDayOfWeek[8] = ["", "Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
    Select
    Case Not StringIsInt($iDayNum) Or Not StringIsInt($iShort)
    Return SetError(1, 0, "")
    Case $iDayNum < 1 Or $iDayNum > 7
    Return SetError(1, 0, "")
    Case Else
    Select
    Case $iShort = 0
    Return $aDayOfWeek[$iDayNum]
    Case $iShort = 1
    Return StringLeft($aDayOfWeek[$iDayNum], 3)
    Case Else
    Return SetError(1, 0, "")
    EndSelect
    EndSelect
    EndFunc ;==>_DateDayOfWeekDeutsch
    
    
    Func _ComputeAll()
        ConsoleWrite('_ComputeAll(' & _NowTime() & ')' & @CRLF)
        Local $sTime, $iTime, $iTime1, $iTime2, $iTime3, $iPause
    
    ;~     länge Pause
        $iTime1 = _GetMins($idInp_pause_bgn)  ; Minuten
        $iTime2 = _GetMins($idInp_pause_end)  ; Minuten
        $sTime = _SubTime($iTime2, $iTime1)   ; hh:nn
        $iPause = @extended
        GUICtrlSetData($idInp_laenge_der_pause, $sTime)
    
    ;~     tats arbeitszeit
        $iTime1 = _GetMins($idInp_ankunft)
        $iTime2 = _GetMins($idInp_feierabend)
        $sTime = _SubTime($iTime2 - $iPause, $iTime1)
        GUICtrlSetData($idInp_tats_zeit, $sTime)
    
    ;~     überstd heute
        $iTime1 = _GetMins($idInp_tats_zeit)
        $iTime2 = _GetMins($idInp_soll_zeit)
        $sTime = _SubTime($iTime1, $iTime2)
        $iTime = @extended
        If $iTime < 1 Then $sTime = '00:00'                          ; "00:00"
    ;~     If $iTime < 1 Then $sTime = '' & $sTime ; "-02:15"
        GUICtrlSetData($idInp_ueberstunden_heute, $sTime)
    
    ;~     früh feierabend
        $iTime1 = _GetMins($idInp_ankunft)
        $iTime2 = _GetMins($idInp_soll_zeit)
        $iTime3 = _GetMins($idInp_laenge_der_pause)
        $sTime = _SubTime($iTime3, $iTime1 + $iTime2)
        GUICtrlSetData($idInp_frue_zeit, $sTime)
    
    ;~     spä Feierabend
    ;~     Local    $max_arbeit_zeit = "10:00"
        $iTime1 = _GetMins($idInp_ankunft)
        $iTime2 = _GetMins('10:00')
        $iTime3 = _GetMins($idInp_laenge_der_pause)
        $iTime = $iTime1 + $iTime2 + $iTime3
        $sTime = StringRight('0' & Int($iTime / 60), 2) & ':' & StringRight('0' & Mod($iTime, 60), 2)
        GUICtrlSetData($idInp_spaet_zeit, $sTime)
    
    ;~     pause nach 6 std
        $iTime1 = _GetMins($idInp_ankunft)
        $iTime2 = _GetMins('06:00')
        $iTime = $iTime1 + $iTime2
        $sTime = StringRight('0' & Int($iTime / 60), 2) & ':' & StringRight('0' & Mod($iTime, 60), 2)
        GUICtrlSetData($idInp_pause_6std, $sTime)
    EndFunc   ;==>_ComputeAll
    
    Func _GetMins($idCtrl) ; idCtrl or string eg. "08:15"
        Local $aSplit = StringSplit(IsString($idCtrl) ? $idCtrl : GUICtrlRead($idCtrl), ':', 2)
        If UBound($aSplit) < 2 Then Exit 999
        Return $aSplit[0] * 60 + $aSplit[1] ; Minuten
    EndFunc
    
    ; $iTime1 - $iTime2 (in Minuten)
    Func _SubTime($iTime1, $iTime2)
        Local $_iTime = $iTime1 - $iTime2
        Local $_sTime = StringRight('0' & Int($_iTime / 60), 2) & ':' & StringRight('0' & Mod($_iTime, 60), 2)
        Return SetExtended($_iTime, $_sTime) ; hh:nn and @extended = Minuten
    EndFunc
    Alles anzeigen


    Aber ich würde gerne noch diese Funktion integrieren, wie Autovervollständigung für die Zahlen.

    Ist das möglich? was sollte ich anpassen oder hast du vielleicht einen Tipp, wie man den Code von jmd anderen in den eigenen Code integrieren kann?

    C
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    
    Opt("GUIOnEventMode", 1)
    
    $hGUI = GUICreate("test", 232, 90)
    $Label = GUICtrlCreateLabel("Enter the time", 22, 8, 163, 17)
    $input = GUICtrlCreateInput("", 22, 30, 165, 24)
    GUICtrlSetLimit(-1, 5)
    GUICtrlSetFont(-1, 12)
    GUISetState()
    
    GUIRegisterMsg($WM_COMMAND, '_WM_COMMAND')
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    
    While Sleep(100)
    WEnd
    
    Func _Exit()
        Exit
    EndFunc
    
    Func _WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
     Local $id = BitAND($wParam, 0x0000FFFF)
     Local $code = BitShift($wParam, 16)
       If $id = $input AND $code = $EN_UPDATE Then
            GUICtrlSetData($input, _FormatInputNumber(GUICtrlRead($input)))
        EndIf
        Return $GUI_RUNDEFMSG
    EndFunc
    
    Func _FormatInputNumber($iNumber)
       If StringRegExp($iNumber, '^:|[^:\d]|:.*:') Then Return StringTrimRight($iNumber, 1) 
       Local $tmp = StringSplit($iNumber, ":")
     Switch $tmp[0]
       Case 1
         ; If first digit is > 2, lets say 8 then write 08:
         If StringLeft($tmp[1], 1) > 2 Then $tmp[1] = "0" & $tmp[1] & ":"
         ; values from 00:00 to 23:59 are possible
         If $tmp[1] > 23 Then Return StringTrimRight($iNumber, 1) 
         ; user types in only the digits, the : is inserted automatically
         If StringLen($tmp[1]) = 2 Then $tmp[1] &= ":"
         If StringLen($tmp[1]) > 3 Then Return "don't fool me !"
         Return $tmp[1]
       Case 2 
         If StringLen($tmp[1]) < 2 Then $iNumber = "0" & $tmp[1] & ":"
         ; If the users types in 12:7 then the input should just show 12:
         If StringLeft($tmp[2], 1) > 5 Then Return StringTrimRight($iNumber, 1) 
         Return $iNumber 
     EndSwitch
    EndFunc
    Alles anzeigen

    Dankeschön!

    Schönen Abend euch!

  • Zeitrechner

    • Chris_pac
    • 28. September 2022 um 17:41

    Hallo Bitnugger,

    herzlichen Dank!

    Ich habe den Code ein bisschen angepasst, denn man sollte die Zeit auch manuell eingeben können. Ich habe die Felder, die manuell eingegeben werden können, nach oben verschoben und einen "Berechnen"-Button hinzugefügt.

    Hier ist der aktuelle Code:

    C
    ;-- TIME_STAMP   2022-09-27 18:51:20
    
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Date.au3>
    
    Global $ankunftzeit, $pause_bgn_zeit, $pause_end_zeit
    
    #Region ### START Koda GUI section ### Form=c:\users\wkivag15\documents\zeitrechner.kxf
    Global $Form1_1 = GUICreate("Zeitrechner", 664, 413, 617, 296)
    GUISetFont(12, 400, 0, "DM Sans", $Form1_1)
    GUICtrlSetTip(-1, "16")
    Global $ankunft_btn = GUICtrlCreateButton("Ankunft", 16, 24, 107, 29)
    Global $pause_bgn_btn = GUICtrlCreateButton("Pause Begin", 16, 64, 107, 29)
    Global $pause_end_btn = GUICtrlCreateButton("Pause Ende", 16, 104, 107, 29)
    Global $ankunft_inp = GUICtrlCreateInput("08:00", 128, 24, 89, 29, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER))
    Global $pause_bgn_inp = GUICtrlCreateInput("12:00", 128, 63, 89, 29, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER))
    Global $pause_end_inp = GUICtrlCreateInput("12:30", 128, 103, 89, 29, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER))
    Global $laenge_der_pause_inp = GUICtrlCreateInput("", 192, 208, 89, 29)
    Global $laenge_pause_lbl = GUICtrlCreateLabel("Länge der Pause", 16, 208, 125, 25)
    Global $feierabend_lbl = GUICtrlCreateLabel("Feierabend", 250, 24, 88, 25)
    Global $feierabend_inp = GUICtrlCreateInput("18:00", 365, 24, 89, 29)
    Global $Label4 = GUICtrlCreateLabel("Überstunden heute", 14, 248, 146, 25)
    Global $Label6 = GUICtrlCreateLabel("Soll-Arbeitzeit", 250, 64, 110, 25)
    Global $soll_zeit_inp = GUICtrlCreateInput("07:48", 365, 64, 89, 29)
    Global $Label7 = GUICtrlCreateLabel("Tatsächliche Arbeitzeit", 374, 208, 174, 25)
    Global $Label8 = GUICtrlCreateLabel("Frühester Feierabend", 374, 246, 163, 25)
    Global $Label9 = GUICtrlCreateLabel("Spätester Feierabend", 374, 286, 164, 25)
    Global $Label10 = GUICtrlCreateLabel("Pause nach 6 Stunden", 374, 326, 167, 25)
    Global $ueberstunden_heute_inp = GUICtrlCreateInput("", 192, 248, 89, 29)
    Global $pause_6std_inp = GUICtrlCreateInput("", 556, 322, 89, 29)
    Global $spaet_zeit_inp = GUICtrlCreateInput("", 556, 282, 89, 29)
    Global $frue_zeit_inp = GUICtrlCreateInput("", 556, 242, 89, 29)
    Global $tats_zeit_inp = GUICtrlCreateInput("", 556, 202, 89, 29)
    
    Global $calculate_btn = GUICtrlCreateButton ("Berechnen", 14, 326, 100, 50)
    
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                Exit
    
            Case $ankunft_btn
                $ankunftzeit = (_NowTime(4))
                GUICtrlSetData($ankunft_inp, $ankunftzeit)
    
            Case $pause_bgn_btn
                $pause_bgn_zeit = (_NowTime(4))
                GUICtrlSetData($pause_bgn_inp, $pause_bgn_zeit)
    
            Case $pause_end_btn
                $pause_end_zeit = (_NowTime(4))
                GUICtrlSetData($pause_end_inp, $pause_end_zeit)
    ;~             _ComputeAll()
    
            Case $calculate_btn
                _ComputeAll()
    
        EndSwitch
    WEnd
    
    Func _ComputeAll()
        ConsoleWrite('_ComputeAll()' & _NowTime() & @CRLF)
    ;~     länge Pause
        Local $aSplit1 = StringSplit(GUICtrlRead($pause_bgn_inp), ':', 2)
        Local $aSplit2 = StringSplit(GUICtrlRead($pause_end_inp), ':', 2)
        Local $sStd = StringRight('0' & $aSplit2[0] - $aSplit1[0], 2)
        Local $sMin = StringRight('0' & $aSplit2[1] - $aSplit1[1], 2)
        GUICtrlSetData($laenge_der_pause_inp, $sStd & ':' & $sMin)
    
    ;~     Feierabend
    
    ;~     tats arbeitszeit
        Local $aSplit1 = StringSplit(GUICtrlRead($ankunft_inp), ':', 2)
        Local $aSplit2 = StringSplit(GUICtrlRead($feierabend_inp), ':', 2)
        Local $sStd = StringRight('0' & $aSplit2[0] - $aSplit1[0], 2)
        Local $sMin = StringRight('0' & $aSplit2[1] - $aSplit1[1], 2)
        GUICtrlSetData($tats_zeit_inp, $sStd & ':' & $sMin)
    
    ;~     überstd heute
        Local $aSplit1 = StringSplit(GUICtrlRead($tats_zeit_inp), ':', 2)
        Local $aSplit2 = StringSplit(GUICtrlRead($soll_zeit_inp), ':', 2)
        Local $sStd = StringRight('0' & $aSplit2[0] - $aSplit1[0], 2)
        Local $sMin = StringRight('0' & $aSplit2[1] - $aSplit1[1], 2)
        GUICtrlSetData($ueberstunden_heute_inp, $sStd & ':' & $sMin)
    
    ;~     früh feierabend
        Local $aSplit1 = StringSplit(GUICtrlRead($ankunft_inp), ':', 2)
        Local $aSplit2 = StringSplit(GUICtrlRead($soll_zeit_inp), ':', 2)
        Local $aSplit3 = StringSplit(GUICtrlRead($laenge_der_pause_inp), ':', 2)
        Local $sStd = StringRight('0' & $aSplit1[0] + $aSplit2[0]  - $aSplit3[0], 2)
        Local $sMin = StringRight('0' & $aSplit1[1] + $aSplit2[1] - $aSplit3[1], 2)
        GUICtrlSetData($frue_zeit_inp, $sStd & ':' & $sMin)
    
    ;~     spä Feierabend
    ;~     Local    $max_arbeit_zeit = "10:00"
        Local $aSplit1 = StringSplit(GUICtrlRead($ankunft_inp), ':', 2)
        Local $aSplit2 = StringSplit("10:00", ':', 2)
        Local $aSplit3 = StringSplit(GUICtrlRead($laenge_der_pause_inp), ':', 2)
        Local $sStd = StringRight('0' & $aSplit1[0] + $aSplit2[0] + $aSplit3[0], 2)
        Local $sMin = StringRight('0' & $aSplit1[1] + $aSplit2[1] + $aSplit3[1], 2)
        GUICtrlSetData($spaet_zeit_inp, $sStd & ':' & $sMin)
    
    ;~     pause nach 6 std
        Local $aSplit1 = StringSplit(GUICtrlRead($ankunft_inp), ':', 2)
        Local $aSplit2 = StringSplit("06:00", ':', 2)
        Local $sStd = StringRight('0' & $aSplit2[0] + $aSplit1[0], 2)
        Local $sMin = StringRight('0' & $aSplit2[1] + $aSplit1[1], 2)
        GUICtrlSetData($pause_6std_inp, $sStd & ':' & $sMin)
    
    EndFunc   ;==>_ComputeAll
    Alles anzeigen

    Jetzt habe ich ein paar Probleme:

    1. mit den Plusrechnungen (Überstunden heute, früher & später Feierabend):

    pasted-from-clipboard.png

    2. wenn ich unter 10 Minuten bei Ankunftsminute eingebe, passiert folgendes:

    pasted-from-clipboard.png


    Eine Frage: Wie kann ich diese Funktion für die Eingabefelder in mein Programm integrieren? :

    Quelle

    C
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    
    Opt("GUIOnEventMode", 1)
    
    $hGUI = GUICreate("test", 232, 90)
    $Label = GUICtrlCreateLabel("Enter the time", 22, 8, 163, 17)
    $input = GUICtrlCreateInput("", 22, 30, 165, 24)
    GUICtrlSetLimit(-1, 5)
    GUICtrlSetFont(-1, 12)
    GUISetState()
    
    GUIRegisterMsg($WM_COMMAND, '_WM_COMMAND')
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    
    While Sleep(100)
    WEnd
    
    Func _Exit()
        Exit
    EndFunc
    
    Func _WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
     Local $id = BitAND($wParam, 0x0000FFFF)
     Local $code = BitShift($wParam, 16)
       If $id = $input AND $code = $EN_UPDATE Then
            GUICtrlSetData($input, _FormatInputNumber(GUICtrlRead($input)))
        EndIf
        Return $GUI_RUNDEFMSG
    EndFunc
    
    Func _FormatInputNumber($iNumber)
       If StringRegExp($iNumber, '^:|[^:\d]|:.*:') Then Return StringTrimRight($iNumber, 1) 
       Local $tmp = StringSplit($iNumber, ":")
     Switch $tmp[0]
       Case 1
         ; If first digit is > 2, lets say 8 then write 08:
         If StringLeft($tmp[1], 1) > 2 Then $tmp[1] = "0" & $tmp[1] & ":"
         ; values from 00:00 to 23:59 are possible
         If $tmp[1] > 23 Then Return StringTrimRight($iNumber, 1) 
         ; user types in only the digits, the : is inserted automatically
         If StringLen($tmp[1]) = 2 Then $tmp[1] &= ":"
         If StringLen($tmp[1]) > 3 Then Return "don't fool me !"
         Return $tmp[1]
       Case 2 
         If StringLen($tmp[1]) < 2 Then $iNumber = "0" & $tmp[1] & ":"
         ; If the users types in 12:7 then the input should just show 12:
         If StringLeft($tmp[2], 1) > 5 Then Return StringTrimRight($iNumber, 1) 
         Return $iNumber 
     EndSwitch
    EndFunc
    Alles anzeigen

    Ich freue mich sehr über deine Hilfe!

    Viele Grüße

    Chris

  • Zeitrechner

    • Chris_pac
    • 27. September 2022 um 09:48

    Hallo zusammen,


    ich möchte gerne einen Zeitrechner erstellen. Was ich noch nicht weiß ist, wie ich die Berechnungen mit der Zeit machen kann.

    Folgendes habe ich bis jetzt geschafft:

    C
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Date.au3>
    
    #Region ### START Koda GUI section ### Form=c:\users\wkivag15\documents\zeitrechner.kxf
    $Form1_1 = GUICreate("Zeitrechner", 664, 413, 617, 296)
    $ankunft_btn = GUICtrlCreateButton("Ankunft", 16, 24, 107, 29)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $pause_bgn_btn = GUICtrlCreateButton("Pause Begin", 16, 64, 107, 29)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $pause_end_btn = GUICtrlCreateButton("Pause Ende", 16, 104, 107, 29)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $ankunft_inp = GUICtrlCreateInput("00:00", 128, 24, 89, 29, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $pause_bgn_inp = GUICtrlCreateInput("00:00", 128, 63, 89, 29, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER))
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $pause_end_inp = GUICtrlCreateInput("00:00", 128, 103, 89, 29, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER))
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $laenge_der_pause_inp = GUICtrlCreateInput("", 192, 168, 89, 29)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $laenge_pause_lbl = GUICtrlCreateLabel("Länge der Pause", 16, 168, 125, 25)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $feierabend_lbl = GUICtrlCreateLabel("Feierabend", 16, 208, 88, 25)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    GUICtrlSetTip(-1, "16")
    $Label3 = GUICtrlCreateLabel("Überstunden vorher", 14, 246, 151, 25)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $Label4 = GUICtrlCreateLabel("Überstunden heute", 14, 286, 146, 25)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $Label5 = GUICtrlCreateLabel("Überstunden gesamt", 14, 326, 159, 25)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $Label6 = GUICtrlCreateLabel("Soll-Arbeitzeit", 374, 168, 110, 25)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $Label7 = GUICtrlCreateLabel("Tatsächliche Arbeitzeit", 374, 208, 174, 25)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $Label8 = GUICtrlCreateLabel("Frühester Feierabend", 374, 246, 163, 25)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $Label9 = GUICtrlCreateLabel("Spätester Feierabend", 374, 286, 164, 25)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $Label10 = GUICtrlCreateLabel("Pause nach 6 Stunden", 374, 326, 167, 25)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $feierabend_inp = GUICtrlCreateInput("", 192, 208, 89, 29)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $ueberstunden_inp = GUICtrlCreateInput("", 192, 246, 89, 29)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $ueberstunden_heute_inp = GUICtrlCreateInput("", 192, 286, 89, 29)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $ueberstunden_ges_inp = GUICtrlCreateInput("", 192, 326, 89, 29)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $pause_6std_inp = GUICtrlCreateInput("", 556, 322, 89, 29)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $spaet_zeit_inp = GUICtrlCreateInput("", 556, 282, 89, 29)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $frue_zeit_inp = GUICtrlCreateInput("", 556, 242, 89, 29)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $tats_zeit_inp = GUICtrlCreateInput("", 556, 202, 89, 29)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    $soll_zeit_inp = GUICtrlCreateInput("", 556, 162, 89, 29)
    GUICtrlSetFont(-1, 12, 400, 0, "DM Sans")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
    
            Case $ankunft_btn
                $ankunftzeit = (_NowTime(4))
                GUICtrlSetData($ankunft_inp, $ankunftzeit)
    
    
            Case $pause_bgn_btn
                $pause_bgn_zeit = (_NowTime(4))
                GUICtrlSetData ($pause_bgn_inp, $pause_bgn_zeit)
    
            Case $pause_end_btn
                $pause_end_zeit = (_NowTime(4))
                GUICtrlSetData ($pause_end_inp, $pause_end_zeit)
    
        EndSwitch
    WEnd
    Alles anzeigen

    Ich will das so machen: sobald "Pause Ende" da ist, wird alles berechnet und alle Felder sind gefüllt.

    Und noch etwas: die Zeit wird auch in Dezimalzahlen berechnet. Pro Tag muss man 07,48 Stunden arbeiten oder 07,80 Stunden in Dezimalzahlen.

    So sieht das in Excel aus:

    pasted-from-clipboard.png

    Ich freue mich sehr auf eure Erläuterungen.

    Vielen Dank und viele Grüße

    Chris

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™