La meme fonction, avec un flag pour plus de puissance.
Possibilités :
0 : Attendre jusqu'a xheure
1 : Attendre jusqu'a xheure de plus (par raport au dernier Attendre)
2 : Attendre x temps. (simple sleep, mais plus facile a lire)
3 : Initialisation des variable pour "Attendre jusqu'a xheure de plus" sur l'heure actuelle
4 : Initialisation des variable pour "Attendre jusqu'a xheure de plus" avec les variables envoyées
5 : Renvoi 1 si l'initialisation a déja été faite, 0 sinon
Code : Tout sélectionner
Func Attendre($A_Heure = 0, $A_Minute = 0, $A_Seconde = 0, $A_MS = 0, $A_Flag = 0)
Select
Case $A_Flag = 0 Or $A_Flag = "jusqu'a x"
Local $A_Tempo, $A_Tempo2
If @HOUR > $A_Heure Then
$A_Heure += 24
ElseIf @HOUR = $A_Heure And @MIN > $A_Minute Then
$A_Heure += 24
ElseIf @HOUR = $A_Heure And @MIN = $A_Minute And @SEC > $A_Seconde Then
$A_Heure += 24
ElseIf @HOUR = $A_Heure And @MIN = $A_Minute And @SEC = $A_Seconde And @MSEC >= $A_MS Then
$A_Heure += 24
EndIf
$A_Tempo = ($A_Heure * 60 * 60 * 1000) + ($A_Minute * 60 * 1000) + ($A_Seconde * 1000) + $A_MS
$A_Tempo2 = (@HOUR * 60 * 60 * 1000) + (@MIN * 60 * 1000) + (@SEC * 1000) + @MSEC
Global $sA_Heure = @HOUR
Global $sA_Minute = @MIN
Global $sA_Seconde = @SEC
Global $sA_MS = @MSEC
Return ($A_Tempo - $A_Tempo2)
Case $A_Flag = 1 Or $A_Flag = "x de plus"
Local $A_Tempo, $A_Tempo2
If $sA_Heure > $A_Heure Then
$A_Heure += 24
ElseIf $sA_Heure = $A_Heure And $sA_Minute > $A_Minute Then
$A_Heure += 24
ElseIf $sA_Heure = $A_Heure And $sA_Minute = $A_Minute And $sA_Seconde > $A_Seconde Then
$A_Heure += 24
ElseIf $sA_Heure = $A_Heure And $sA_Minute = $A_Minute And $sA_Seconde = $A_Seconde And $sA_MS >= $A_MS Then
$A_Heure += 24
EndIf
$A_Tempo = ($A_Heure * 60 * 60 * 1000) + ($A_Minute * 60 * 1000) + ($A_Seconde * 1000) + $A_MS
$A_Tempo2 = ($sA_Heure * 60 * 60 * 1000) + ($sA_Minute * 60 * 1000) + ($sA_Seconde * 1000) + $sA_MS
Global $sA_Heure = @HOUR
Global $sA_Minute = @MIN
Global $sA_Seconde = @SEC
Global $sA_MS = @MSEC
Return ($A_Tempo - $A_Tempo2)
Case $A_Flag = 2 Or $A_Flag = "x"
Local $A_Tempo
$A_Tempo = $A_Heure * 60 * 60 * 1000) + ($A_Minute * 60 * 1000) + ($A_Seconde * 1000) + $A_MS
Return Sleep($A_Tempo)
Case $A_Flag = 3 Or $A_Flag = "Initialisation"
Global $sA_Heure = @HOUR
Global $sA_Minute = @MIN
Global $sA_Seconde = @SEC
Global $sA_MS = @MSEC
Return 1
Case $A_Flag = 4 Or $A_Flag = "Initialisation sur"
Global $sA_Heure = $A_Heure
Global $sA_Minute = $sA_Minute
Global $sA_Seconde = $A_Seconde
Global $sA_MS = $A_MS
Return 1
Case $A_Flag = 5 Or $A_Flag = "Est initialisé"
If IsDeclared("$sA_Heure") And IsDeclared("$sA_Minute") And IsDeclared("$sA_Seconde") And IsDeclared("$sA_MS") Then
Return 1
Else
Return 0
EndIf
EndFunc