Hallo liebe Community,
wie die Überschrift schon sagt, möchte die genannte Funktion keine großen Zahlen verarbeiten.
Ich möchte die Differenz im Format hh:mm:ss vom Zeitpunkt A zum Zeitpunkt B haben.
Gebe ich ihm durch eine Klick auf die Buttons im GUI eine Differenz von einigen Minuten, funktioniert das alles wunderbar. Bei knapp 8 Stunden macht er dann ganz andere Differenzen daraus.
Wie das bei anderen Zahlen aussieht kann ich euch leider nicht sagen, da ich noch nichts anderes versucht habe das größer als eine Stunde ist.
Würde mich sehr über Hilfe freuen.
#Edit: Gelöst!
Spoiler anzeigen
#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.8.1
Programm Version: 1.0.2
Autor: Domenick L.
Kontakt: [email='dnick92@web.de'][/email]
Script Funktion:
Dokumentiert ihre Arbeitzeiten samt Pausen übersichtlich in einer .csv-Datei.
Die Gesamt Arbeits- und Pausenzeit wird automatisch ausgerechnet.
Es kann nur ein Pausenstart und ein Pausenende berechnet werden,
also nur eine Pause!
Werte die sie doppelt eintragen lassen, werden überschrieben!
#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]#NoTrayIcon
#include <Date.au3>
GUICreate("Arbeitszeiten - Version 1.0.2", 300, 220)
[/autoit] [autoit][/autoit] [autoit]$Start = GUICtrlCreateButton("Anfang", 10, 105, 90, 35)
$Stop = GUICtrlCreateButton("Feierabend", 110, 105, 90, 35)
$Ende = GUICtrlCreateButton("Ende", 220, 105, 70, 35)
$PauseStart = GUICtrlCreateButton("Pause-Start", 10, 150, 90, 30)
$PauseEnde = GUICtrlCreateButton("Pause-Ende", 110, 150, 90, 30)
$Update = GUICtrlCreateButton("Auf neue Updates prüfen", 10, 190, 190, 20)
$Hilfe = GUICtrlCreateButton("Homepage", 220, 190, 70, 20)
GUICtrlCreateLabel ("Dieses Programm dokumentiert deine Arbeitszeiten.", 10, 10)
GUICtrlCreateLabel ("Beginnst du deinen Arbeitstag, drücke ""Anfang"",", 10, 35)
GUICtrlCreateLabel ("Beendest du ihn, drücke ""Feierabend"".", 10, 50)
GUICtrlCreateLabel ("Das Dokument wird Standardmäßig als .csv-Datei", 10, 65)
GUICtrlCreateLabel ("in dem Ordner C:\Users\"&@UserName&"\Arbeits-Info gespeichert.", 10, 80)
Global $Datum = @MDAY & "." & @MON & "." & @YEAR
Global $kurzDatum = @MON & "." & @YEAR
Global $Pfad = ("C:\Users\"&@UserName&"\Arbeits-Info")
Global $csvPfad = ("C:\Users\"&@UserName&"\Arbeits-Info\Arbeitszeiten-"&$kurzDatum&".csv")
Global $ini = ("C:\Users\"&@UserName&"\Documents\Arbeitszeiten.ini")
Global $section = ("Arbeitszeiten")
Global $GesamtHH, $GesamtMM, $GesamtSS, $PauseHH, $PauseMM, $PauseSS
If Not FileExists ($Pfad) Then DirCreate ($Pfad)
[/autoit] [autoit][/autoit] [autoit]GUISetState()
[/autoit] [autoit][/autoit] [autoit]Do
$msg = GUIGetMsg()
Select
Case $msg = $Start
If Not FileExists ($csvPfad) Then FileWrite ($csvPfad, " Datum ; ;
Begonnen ; ; Pause von ; Pause bis ; ; Beendet ; ; Pause ; Gesamt" &
@CRLF & @CRLF)
If FileExists ($ini) Then FileDelete ($ini)
IniWrite ($ini, $section, "Start", TimerInit())
FileWrite ($csvPfad, " " & $Datum & "; ;" & @HOUR & ":" & @MIN & ":" & @SEC)
Case $msg = $PauseStart
IniWrite ($ini, $section, "PauseStart", TimerInit())
FileWrite ($csvPfad, "; ;" & @HOUR & ":" & @MIN & ":" & @SEC)
Sleep (1000)
MsgBox (0, "Hinweis", "Bitte vergesse nicht, deine Pause auch wieder zu beenden!")
Case $msg = $PauseEnde
IniWrite ($ini, $section, "Pause", TimerDiff(IniRead($ini, $section, "PauseStart","0x00")))
FileWrite ($csvPfad, ";" & @HOUR & ":" & @MIN & ":" & @SEC)
Case $msg = $Stop
_GesamtPause ()
IniWrite ($ini, $section, "Gesamt", TimerDiff(IniRead($ini, $section, "Start","0x00")))
_Gesamt ()
FileWrite ($csvPfad, "; ;" & @HOUR & ":" & @MIN & ":" & @SEC)
FileWrite ($csvPfad, "; ;" & $Pause & ";" & $Gesamt & @CRLF)
Case $msg = $Hilfe
ShellExecute ("http://gabbadome.de/programme/")
Case $msg = $Update
_Update ()
EndSelect
Until $msg = -3 or $msg = $Ende
Func _Gesamt ()
Local $Gesamt1 = IniRead ($ini, $section, "Gesamt","0x00") - IniRead ($ini, $section, "Pause", "0x00")
_TicksToTime($Gesamt1, $GesamtHH, $GesamtMM, $GesamtSS)
Global $Gesamt = StringFormat ("i:i:i", $GesamtHH, $GesamtMM, $GesamtSS)
EndFunc
Func _GesamtPause ()
_TicksToTime(IniRead($ini, $section, "Pause", "0x00"), $PauseHH, $PauseMM, $PauseSS)
Global $Pause = StringFormat ("i:i:i", $PauseHH, $PauseMM, $PauseSS)
If Not IniRead ($ini, $section, "PauseStart", "0x00") Then IniWrite ($ini, $section, "PauseStart", "00")
If Not IniRead ($ini, $section, "Pause", "0x00") Then IniWrite ($ini, $section, "Pause", "00")
If IniRead ($ini, $section, "PauseStart", "0x00") = 0 Then FileWrite ($csvPfad, "; ;00:00:00")
If IniRead ($ini, $section, "Pause", "0x00") = 0 Then FileWrite ($csvPfad, ";00:00:00")
EndFunc
Func _Update ()
$version = "1.0.2"
HttpSetUserAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.6) Gecko/20091201 Firefox/3.6.10")
InetGet("http://th10812-web487.vorschau.server3.tophoster.de/download/Version.txt","C:\Users\"&@UserName&"\Downloads\Version.txt",
1, 0)
$file = FileOpen ("C:\Users\"&@UserName&"\Downloads\Version.txt", 0)
$line = FileReadLine($file, 1)
If $line = $version Then
MsgBox(0, "Update", "Es ist kein Update vorhanden!")
Else
If MsgBox (4, "Update","Es ist ein Update verfügbar!"&@CRLF&"Wollen sie es jetzt herunterladen?")= 6 Then
HttpSetUserAgent ("Firefox")
InetGet
("http://th10812-web487.vorschau.server3.tophoster.de/download/Arbeitszeiten-Zeilen.exe","C:\Users\"&@UserName&"\Downloads\Arbeitszeiten-Zeilen.exe",
1, 0)
If MsgBox (4, "Update","Das Update wurde erfolgreich
beendet!"&@CRLF&"Wollen sie den Ordner mit der neuen Version
öffnen?") = 6 Then
ShellExecute ("C:\Users\"&@UserName&"\Downloads")
EndIf
EndIf
EndIf
FileClose ($file)
FileDelete("C:\Users\"&@UserName&"\Downloads\Version.txt")
EndFunc
Exit
[/autoit]
Lösung:
Spoiler anzeigen
#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.8.1
Programm Version: 1.0.3
Autor: Domenick L.
Kontakt: [email='dnick92@web.de'][/email]
Script Funktion:
Dokumentiert ihre Arbeitzeiten samt Pausen übersichtlich in einer .csv-Datei.
Die Gesamt Arbeits- und Pausenzeit wird automatisch ausgerechnet.
Es kann nur ein Pausenstart und ein Pausenende berechnet werden,
also nur eine Pause!
Werte die sie doppelt eintragen lassen, werden überschrieben!
#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]#NoTrayIcon
#include <Date.au3>
GUICreate("Arbeitszeiten - Version 1.0.3", 300, 220)
[/autoit] [autoit][/autoit] [autoit]$Start = GUICtrlCreateButton("Anfang", 10, 105, 90, 35)
$Stop = GUICtrlCreateButton("Feierabend", 110, 105, 90, 35)
$Ende = GUICtrlCreateButton("Ende", 220, 105, 70, 35)
$PauseStart = GUICtrlCreateButton("Pause-Start", 10, 150, 90, 30)
$PauseEnde = GUICtrlCreateButton("Pause-Ende", 110, 150, 90, 30)
$Update = GUICtrlCreateButton("Auf neue Updates prüfen", 10, 190, 190, 20)
$Hilfe = GUICtrlCreateButton("Homepage", 220, 190, 70, 20)
GUICtrlCreateLabel ("Dieses Programm dokumentiert deine Arbeitszeiten.", 10, 10)
GUICtrlCreateLabel ("Beginnst du deinen Arbeitstag, drücke ""Anfang"",", 10, 35)
GUICtrlCreateLabel ("Beendest du ihn, drücke ""Feierabend"".", 10, 50)
GUICtrlCreateLabel ("Das Dokument wird Standardmäßig als .csv-Datei", 10, 65)
GUICtrlCreateLabel ("in dem Ordner C:\Users\"&@UserName&"\Arbeits-Info gespeichert.", 10, 80)
Global $Datum = @MDAY & "." & @MON & "." & @YEAR
Global $kurzDatum = @MON & "." & @YEAR
Global $Pfad = ("C:\Users\"&@UserName&"\Arbeits-Info")
Global $csvPfad = ("C:\Users\"&@UserName&"\Arbeits-Info\Arbeitszeiten-"&$kurzDatum&".csv")
Global $ini = ("C:\Users\"&@UserName&"\Documents\Arbeitszeiten.ini")
Global $section = ("Arbeitszeiten")
Global $GesamtHH, $GesamtMM, $GesamtSS, $PauseHH, $PauseMM, $PauseSS
If Not FileExists ($Pfad) Then DirCreate ($Pfad)
[/autoit] [autoit][/autoit] [autoit]GUISetState()
[/autoit] [autoit][/autoit] [autoit]Do
$msg = GUIGetMsg()
Select
Case $msg = $Start
If Not FileExists ($csvPfad) Then FileWrite ($csvPfad, " Datum ; ; Begonnen ; ; Pause von ; Pause bis ; ; Beendet ; ; Pause ; Gesamt" & @CRLF & @CRLF)
If FileExists ($ini) Then FileDelete ($ini)
IniWrite ($ini, $section, "Start", _NowCalc())
FileWrite ($csvPfad, " " & $Datum & "; ;" & @HOUR & ":" & @MIN & ":" & @SEC)
Case $msg = $PauseStart
IniWrite ($ini, $section, "PauseStart", _NowCalc())
FileWrite ($csvPfad, "; ;" & @HOUR & ":" & @MIN & ":" & @SEC)
Sleep (1000)
MsgBox (0, "Hinweis", "Bitte vergesse nicht, deine Pause auch wieder zu beenden!")
Case $msg = $PauseEnde
IniWrite ($ini, $section, "Pause", _DateDiff ('s',(IniRead($ini, $section, "PauseStart","0x00")), _NowCalc()))
FileWrite ($csvPfad, ";" & @HOUR & ":" & @MIN & ":" & @SEC)
Case $msg = $Stop
_GesamtPause ()
IniWrite ($ini, $section, "Gesamt", _DateDiff ('s',(IniRead($ini, $section, "Start","0x00")), _NowCalc()))
_Gesamt ()
FileWrite ($csvPfad, "; ;" & @HOUR & ":" & @MIN & ":" & @SEC)
FileWrite ($csvPfad, "; ;" & $Pause & ";" & $Gesamt & @CRLF)
Case $msg = $Hilfe
ShellExecute ("http://gabbadome.de/programme/")
Case $msg = $Update
_Update ()
EndSelect
Until $msg = -3 or $msg = $Ende
Func _Gesamt ()
Local $Gesamt1 = IniRead ($ini, $section, "Gesamt","0x00") - IniRead ($ini, $section, "Pause", "0x00")
Global $Gesamt = _Umrechnen ($Gesamt1)
EndFunc
Func _GesamtPause ()
Global $Pause = _Umrechnen (IniRead($ini, $section, "Pause", ""))
If Not IniRead ($ini, $section, "PauseStart", "0x00") Then IniWrite ($ini, $section, "PauseStart", "00")
If Not IniRead ($ini, $section, "Pause", "0x00") Then IniWrite ($ini, $section, "Pause", "00")
If IniRead ($ini, $section, "PauseStart", "0x00") = 0 Then FileWrite ($csvPfad, "; ;00:00:00")
If IniRead ($ini, $section, "Pause", "0x00") = 0 Then FileWrite ($csvPfad, ";00:00:00")
EndFunc
[/autoit] [autoit][/autoit] [autoit]Func _Umrechnen ($i)
Local $H, $M, $S
$H = Int ($i/3600)
$M = Int ($i/60 - $H*60)
$S = $i - $H*3600 - $M*60
Return StringRight('00' & $H, 2) & ':' & StringRight('00' & $M, 2) & ':' & StringRight('00' & $S, 2)
EndFunc
Func _Update ()
$version = "1.0.3"
HttpSetUserAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.6) Gecko/20091201 Firefox/3.6.10")
InetGet("http://th10812-web487.vorschau.server3.tophoster.de/download/Version.txt","C:\Users\"&@UserName&"\Downloads\Version.txt", 1, 0)
$file = FileOpen ("C:\Users\"&@UserName&"\Downloads\Version.txt", 0)
$line = FileReadLine($file, 1)
If $line = $version Then
MsgBox(0, "Update", "Es ist kein Update vorhanden!")
Else
If MsgBox (4, "Update","Es ist ein Update verfügbar!"&@CRLF&"Wollen sie es jetzt herunterladen?")= 6 Then
HttpSetUserAgent ("Firefox")
InetGet ("http://th10812-web487.vorschau.server3.tophoster.de/download/Arbeitszeiten-Zeilen.exe","C:\Users\"&@UserName&"\Downloads\Arbeitszeiten-Zeilen.exe", 1, 0)
If MsgBox (4, "Update","Das Update wurde erfolgreich beendet!"&@CRLF&"Wollen sie den Ordner mit der neuen Version öffnen?") = 6 Then
ShellExecute ("C:\Users\"&@UserName&"\Downloads")
EndIf
EndIf
EndIf
FileClose ($file)
FileDelete("C:\Users\"&@UserName&"\Downloads\Version.txt")
EndFunc
Exit
[/autoit]PS: Das Programm oder das Script steht unter der "Creative Commons"-Lizenz http://creativecommons.org/licenses/by-nc-nd/3.0/de/