Что нового

Открытие Gui Если дата наступила.

vanekzver

Новичок
Сообщения
91
Репутация
2
Код:
#include <Date.au3>
#include <GUIConstantsEx.au3>
#include <GUIFFLabel.au3>

Global $String

$DATE= "2012/04/2 00:00:00"

$hGUI = GUICreate("Пример", 500, 150)
$Label1 = _GUICtrlFFLabel_Create($hGUI, $String , 0, 0, 500, 150,17, "Verdana",1, 0, 0xFFFFFF)

GUISetState()

AdlibRegister("_Ostatok",1000)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            GUIDelete()
            ExitLoop
    EndSwitch       
Sleep(30)       
WEnd

Func _Ostatok()
$iDateCalc = _DateDiff("s",$DATE,_NowCalc())
If $iDateCalc<0 Then 
$day= Ceiling ($iDateCalc/(3600*24))
$hour= Ceiling( Mod($iDateCalc, (3600*24))/3600)
$min=Ceiling((Mod($iDateCalc,(3600*24))-$hour*3600)/60)
$sec=($min*60+$hour*3600+$day*3600*24)-$iDateCalc

$text= "До "&$DATE&" осталось: "&@CRLF&Abs($day)&" день "&Abs($hour)&" часа "&Abs($min)&" минут "&Abs($sec)&" секунд "

Else    
$day= Floor ($iDateCalc/(3600*24))
$hour= Floor( Mod($iDateCalc, (3600*24))/3600)
$min=Floor((Mod($iDateCalc,(3600*24))-$hour*3600)/60)
$sec=($min*60+$hour*3600+$day*3600*24)-$iDateCalc

$text= "С "&$DATE&" прошло "&@CRLF&Abs($day)&" день "&Abs($hour)&" часа "&Abs($min)&" минут "&Abs($sec)&" секунд "

EndIf
_GUICtrlFFLabel_SetData($Label1, $text, 0x000000)
EndFunc


У меня есть код отсчета до нужной даты. Как прописать в While, то что если эта дата насступила то exit loop
 

joiner

Модератор
Локальный модератор
Сообщения
3,570
Репутация
632
vanekzver
скорее всего это нужно делать в функции после
Код:
Else
удалить данные и вставить
Код:
exit

можно и так
Код:
While 1
	$date_exit = _NowCalc()
	If $date_exit = $DATE Then
		ExitLoop
	EndIf
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			GUIDelete()
			ExitLoop
	EndSwitch
	Sleep(30)
WEnd
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Код:
#include <Date.au3>
#include <GUIConstantsEx.au3>
#include <GUIFFLabel.au3>

Global $String, $text

$DATE= "2012/04/2 00:00:00"

$hGUI = GUICreate("Пример", 500, 150)
$Label1 = _GUICtrlFFLabel_Create($hGUI, $String , 0, 0, 500, 150,17, "Verdana",1, 0, 0xFFFFFF)

GUISetState()

AdlibRegister("_Ostatok",1000)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            GUIDelete()
            ExitLoop
    EndSwitch
Sleep(30)
WEnd

Func _Ostatok()
$iDateCalc = _DateDiff("s",$DATE,_NowCalc())
If $iDateCalc<0 Then
$day= Ceiling ($iDateCalc/(3600*24))
$hour= Ceiling( Mod($iDateCalc, (3600*24))/3600)
$min=Ceiling((Mod($iDateCalc,(3600*24))-$hour*3600)/60)
$sec=($min*60+$hour*3600+$day*3600*24)-$iDateCalc

$text= "До "&$DATE&" осталось: "&@CRLF&Abs($day)&" день "&Abs($hour)&" часа "&Abs($min)&" минут "&Abs($sec)&" секунд "

Else
	$text= "До "&$DATE&" осталось: 0 день 0 часа 0 минут 0 секунд "
	AdlibUnRegister("_Ostatok")
EndIf
_GUICtrlFFLabel_SetData($Label1, $text, 0x000000)
EndFunc
 
Верх