Hier ein Beispiel zum Prüfen ob ein Datum (jetzt) zwischen 2 Daten liegt:
Spoiler anzeigen
#include <StaticConstants.au3>
#include <date.au3>
#include <DateTimeConstants.au3>
#include <EditConstants.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include<WindowsConstants.au3>
Autor: autoBert
veröffentlicht: http://www.autoit.de/index.php?page…57823#post25782
Opt('GUIOnEventMode', 1)
Global $sTitel = 'Beispiel um Zeiten zu vergleichen'
[/autoit] [autoit][/autoit] [autoit]Local $hMainGui = GUICreate($sTitel, 400, 280, 140, 150, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX))
;erzeugt eine GUI die zurückgebebene ID wird in der Variablen $hMainGui gespeichert
;die GUI hat BOXen für Mininmieren, Maximieren und ist in der Größe frei änderbar
GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
;Verknüpft dem Event $Gui_Event_Close mit der Funktion _End
;Menübar anzeigen
Global $menu_help = GUICtrlCreateMenu("?", -1, 1)
Global $item_help_auto = GUICtrlCreateMenuItem("Autor: (Auto)Bert", $menu_help)
Global $item_help_exit = GUICtrlCreateMenuItem("Beenden", $menu_help)
GUICtrlSetOnEvent(-1, '_End')
Local $hedtFrom = GUICtrlCreateDate("01/01/2009 18:45:56", 20, 10, 175, 25, $DTS_UPDOWN)
;erzeugt ein From Steuerelement die zurückgegebene ID wird in der Variablen $hedtFrom gespeichert
Local $DTM_SETFORMAT_ = 0x1032
Local $style = "dd/MM/yyyy HH:mm:ss"
GUICtrlSendMsg($hedtFrom, $DTM_SETFORMAT_, 0, $style)
GUICtrlSetFont(-1, 12)
GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
;verankert das From Steuerelement Links, rechts, oben und fixiert die Höhe
;beim Resizen bleibt es dadurch auf seiner Position und ändert nur die Breite
Local $hedtTo = GUICtrlCreateDate("01.01.2009", 20, 40, 175, 25, $DTS_UPDOWN)
;erzeugt ein To Steuerelement die zurückgegebene ID wird in der Variablen $hedtTo gespeichert
GUICtrlSendMsg($hedtTo, $DTM_SETFORMAT_, 0, $style)
GUICtrlSetFont(-1, 12)
GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
;verankert das To Steuerelement Links, rechts, oben und fixiert die Höhe
;beim Resizen bleibt es dadurch auf seiner Position und ändert nur die Breite
GUICtrlCreateButton('&prüfen', 220, 10, 150, 25)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKTOP)
;verankert den Button "Prüfen" rechts und oben und fixiert die Größe
;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
GUICtrlSetOnEvent(-1, '_CheckDate')
;Beim Klicken des Buttons wird die Funktion _CheckTime aufgerufen
Local $hlblErgebnis = GUICtrlCreateLabel("hier steht danach das Ergebnis", 12, 80, 200,200)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
;verankert das Label links und oben und fixiert die Größe
;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
GUICtrlCreateButton('Be&enden', 220, 115, 150, 25)
GUICtrlSetOnEvent(-1, '_END')
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKTOP)
GUICtrlCreateGraphic(0, 230, 400, 2, $SS_BLACKRECT)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKLEFT + $GUI_DOCKBOTTOM)
Global $hStatus = GUICtrlCreateLabel("", 5, 235, 400, 25)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKLEFT + $GUI_DOCKBOTTOM)
;verankert das Label Links, rechts und unten; fixiert die Höhe
;beim Resizen bleibt es dadurch auf seiner Position und ändert nur die Breite wird angepasst
GUISetState()
While 1
Sleep(120)
WEnd
Func _End()
GUIDelete($hMainGui)
Exit
EndFunc ;==>_End
Func _CheckDate()
Local $dtNow = _NowCalc()
ConsoleWrite($dtNow & @CRLF)
LOCAL $sCheckFrom = GUICTRLREAD($HEDTFrom)
LOCAL $sCheckTo = GUICTRLREAD($HEDTTo)
if $sCheckFrom > $sCheckTo Then
$sCheckFrom = $sCheckTo
$sCheckTo = GUICTRLREAD($HEDTFrom)
EndIf
ConsoleWrite($sCheckFrom & @CRLF)
ConsoleWrite($sCheckTo & @CRLF)
LOCAL $dtFrom = _Date2Str($sCheckFrom)
ConsoleWrite($dtFrom & @crlf)
LOCAL $dtTo = _Date2Str($sCheckTo)
ConsoleWrite($dtTo & @crlf)
$sErg = $dtNow & @CRLF
Select
Case $dtNow >= $dtFrom and $dtNow <= $dtTo
$sErg &= "liegt zwischen den"
case $dtNow <= $dtFrom or $dtNow >= $dtTo
$sErg &= "liegt ausserhalb den"
case $dtNow = $dtFrom and $dtNow = $dtTo
$sErg &= "entspricht den"
EndSelect
$sErg &= " beiden Terminen" & @CRLF & $dtFrom & @CRLF & $dtTo
GUICtrlSetData($hlblErgebnis,$sErg)
EndFunc ;==>_CallEaster
Func _Date2Str($DateTime)
Return StringMid($DateTime,7,4)&"/" & STRINGMID($DateTime,4,2) & "/" & STRINGLEFT($DateTime,2) & " " & StringRight($DateTime,8)
EndFunc
mfg autoBert