Problem bei Zeit in Zetifeld setzen

  • Hallo,

    erneut eine Frage über Zeiten^^

    Folgendes Script:

    Spoiler anzeigen
    [autoit]

    #Include <Array.au3>
    #Include <GUIEdit.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <DateTimeConstants.au3>
    #Include <Date.au3>

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

    Opt("GUIOnEventMode",1)

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

    $GUI = GUICreate("AnyName Dev",280,130,-1,-1,-1,0x00000018)
    GUISetOnEvent(-3,"_Exit")

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

    $Input = GUICtrlCreateInput("...",10,40,220,20)
    GuiCtrlSetState(-1,$GUI_DROPACCEPTED)
    $Datum = GUICtrlCreateDate("",10,70,80,20,$DTS_SHORTDATEFORMAT)
    $Zeit = GUICtrlCreateDate("", 100, 70, 80, 20, $DTS_TIMEFORMAT)
    GUICtrlCreateButton("Beenden",100,100,80,20)
    GUICtrlSetOnEvent(-1,"_Exit")
    GUISetState(@SW_SHOW,$GUI)
    GUISetOnEvent($GUI_EVENT_DROPPED, "_Dropped")

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

    while 1

    Wend

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

    Func _Dropped()
    Local $ZeitTest = 0
    If @GUI_DropId = $Input Then
    GUICtrlSetData($Input, @GUI_DragFile)
    _GUICtrlEdit_SetSel($Input, 0, -1)
    $aDragTime = FileGetTime(GUICtrlRead($Input),1)
    GUICtrlSetData($Datum,$aDragTime[0]&"/"&$aDragTime[1]&"/"&$aDragTime[2])
    GUICtrlSetData($Zeit,$aDragTime[0]&"/"&$aDragTime[1]&"/"&$aDragTime[2]&"/"&$aDragTime[3]-1&"/"&$aDragTime[4]&"/"&$aDragTime[5])
    EndIf
    EndFunc

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

    func _Exit()
    Exit
    EndFunc

    [/autoit]

    Das die Stunde ($aDragTime[3]) - 1 gerechnet wird ist nur als Beispiel. Anstelle der 1 kommt dann eine Variable.
    Wenn man per Drag'n'Drop eine Datei in das Inputfeld zieht soll das Erstelldatum der Datei ins Datums und Zeitfeld eingetragen werden.

    Dies Funktioniert auch mit jeder Datei, wo die Uhrzeit des Erstelldatums höher/gleich als 10 Uhr ist .... 11,12,13 .... 24. Bei diesen wird - 1 gerechnet und es richtig eingetragen.
    Wenn eine Datei mit einer Erstellzeit niedriger als 10 .... 9,8 .... 0 eingetragen wird, setzt es die Minuten und Sekunden in der Zeitanzeige nicht richtig.

    Die Stunden stimmen, die Minuten sind nur einstellig (egal wie hoch 01 - 59, meist ist nur die 2 Ziffer da, 1. Ziffer meist 0) und die Sekunden werden auf den aktuellen Systemwert gesetzt. Einfach mal selber probieren.
    Wie kann ich das Problem umgehen, so dass auch Uhrzeiten eintragen werden, die niedriger sind als 10.

    Vielen Dank schonmal im Vorraus.

    Gruß
    Prixma

    Einmal editiert, zuletzt von Prixma (6. Mai 2011 um 12:01)

  • Hallo Prrixma,

    da du ja auch bei 00:xx Probleme bekommen würdest, schlage ich dir vor zuerst die Zeit zu ermitteln und davon mit der Func _DateAdd 1 Stunde abzuziehen. Dieses Ergebnis splittest du dann in Datum und Zeit (dazwischen ist ein Leerzeichen) und weisst die beiden Werte zu,

    mfg autoBert

  • Hallo,

    ich danke dir vielmals. Funktioniert 1a. :)

    Und das nächste mal meinen Namen bitte nur mir einen "r" ;)

    Gruß