Aide et conseils concernant AutoIt et ses outils.
pierrotm777
Membre émérite
Messages : 770 Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status :
Hors ligne
#1
Message
par pierrotm777 » jeu. 14 oct. 2010 20:53
Bon,
Avec ce nouveau sujet, j'espère être moins ridicule .
J'ai besoin d'additionner deux heures différentes . Aprés recherche dans l'aide je n'ai trouvé que cette solution qui semble fonctionner
mais pas trés class .
► Afficher le texte
Code : Tout sélectionner
#include <Date.au3>
Global $Sec, $Min, $Hour, $T1, $T2, $NewTime
_TimeAddTime(_DateTimeFormat( _NowCalc(),5),"01:11:02")
MsgBox(262144,'' , 'New Time:' & StringFormat("%02i:%02i:%02i", $Hour, $Mins, $Secs))
Func _TimeAddTime($Time1,$Time2)
$T1 = StringSplit($Time1,":")
$StartTicks = _TimeToTicks($T1[1],$T1[2],$T1[3])
; MsgBox(262144,'' , 'Start Time:' & $StartTicks)
$T2 = StringSplit($Time2,":")
$EndTicks = _TimeToTicks($T2[1],$T2[2],$T2[3])
; MsgBox(262144,'' , 'End Time:' & $EndTicks)
; addition des deux heures
_TicksToTime($StartTicks+$EndTicks,$Hour,$Min,$Sec)
If $Hour >= 24 Then $Hour = $Hour - 24
; MsgBox(262144,'' , 'New Time:' & $Hour & ":" & $Min & ":" & $Sec)
Return $Hour & ":" & $Min & ":" & $Sec
EndFunc
Dans certains cas (minutes<10), les minutes sont sur un seul digit
Existe t'il une solution meilleur.
Merci par avance
Modifié en dernier par
pierrotm777 le ven. 22 oct. 2010 13:58, modifié 2 fois.
SrBelial
Niveau 7
Messages : 335 Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status :
Hors ligne
#2
Message
par SrBelial » jeu. 14 oct. 2010 22:04
moi je serai toi je convertirai tout en secondes ou en millisecondes et hop, une addition et le tour est joué !
après, reconversion proprement avec ce code :
Code : Tout sélectionner
; Valeur d'exemple : un nombre de millisecondes calculé facilement ... pour donner 1 heure 45 et 15 secondes ^__^
Dim $ms = 1000 * 60 * 60 + 1000 * 60 * 45 + 135 * 1000
Dim $h = floor($ms / (1000 * 60 * 60))
$ms = $ms - $h * 1000 * 60 * 60
Dim $m = floor($ms / (1000 * 60))
$ms = $ms - $m * 1000 * 60
Dim $s = floor($ms / 1000)
$ms = $ms - $s * 1000
MsgBox(0, "", $h & ":" & $m & ":" & $s & " _ " & $ms)
.-SrB-. The One
NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
OUI ! AutoIt est un langage à part entière !
Dans SciTE sélectionnez 1 mot puis F1
Don't want english doc ?? go to documentation française !! >>ICI<< [/size]
Sh4dows
Status :
Hors ligne
#3
Message
par Sh4dows » jeu. 14 oct. 2010 22:37
De plus la conversion en milliseconde peut être très utile avec les timers
pierrotm777
Membre émérite
Messages : 770 Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status :
Hors ligne
#4
Message
par pierrotm777 » ven. 15 oct. 2010 07:15
Merci de votre conseille, je vais essayer cette solution !
sksbir
Niveau 7
Messages : 384 Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status :
Hors ligne
#5
Message
par sksbir » ven. 15 oct. 2010 11:38
bonjour
perso, j'utiliserais les fonctions _datediff et _dateadd
et sinon, ya pleins d'autres fonctions dans l'aide d'autoit "User Defined Function --> Date management"
pierrotm777
Membre émérite
Messages : 770 Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status :
Hors ligne
#6
Message
par pierrotm777 » ven. 15 oct. 2010 19:30
J'ai modifié le post 1 avec un traitement de format de l'heure sur 2 digits
pierrotm777
Membre émérite
Messages : 770 Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status :
Hors ligne
#7
Message
par pierrotm777 » ven. 15 oct. 2010 19:30
sksbir a écrit : bonjour
perso, j'utiliserais les fonctions _datediff et _dateadd
et sinon, ya pleins d'autres fonctions dans l'aide d'autoit "User Defined Function --> Date management"
Un exemple peut être à me conseiller ?
SrBelial
Niveau 7
Messages : 335 Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status :
Hors ligne
#8
Message
par SrBelial » jeu. 21 oct. 2010 15:10
en l'absence de réponse et si votre problème est résolu, merci de le signaler par [R].
.-SrB-. The One
NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
OUI ! AutoIt est un langage à part entière !
Dans SciTE sélectionnez 1 mot puis F1
Don't want english doc ?? go to documentation française !! >>ICI<< [/size]
pierrotm777
Membre émérite
Messages : 770 Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status :
Hors ligne
#9
Message
par pierrotm777 » jeu. 21 oct. 2010 16:29
ET bien j'aurais bien aimé un exemple avec _datediff et _dateadd !
SrBelial
Niveau 7
Messages : 335 Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status :
Hors ligne
#10
Message
par SrBelial » jeu. 21 oct. 2010 17:58
En espérant que ça correspond ...
à noter : la doc contient tout ce qu'il faut pour exploiter et adapter ceci à vos besoins !
^____^ rien qu'avec le nom des fonctions il vous aurait été facile d'approfondir le sujet de votre côte ^____^
====>
Code : Tout sélectionner
#include <Date.au3>
; Nombre d'heures écoulées dans l'année :
Global $debutdelannee = @YEAR & "/01/01 00:00:00"
Global $maintenant = _NowCalc()
Global $NbHeures = _DateDiff( 'h',$debutdelannee, $maintenant)
MsgBox( 64, "Heures Calculator of The Death !!", "Nombre d'heures écoulées : " & $NbHeures )
; Ajout d'un nombre d'heures données à une heure :
Global $heurecourante = _NowCalc()
Global $nombreSecondesAAjouter = 9000 ; équivalent à 2 heures et demie
Global $res = _DateAdd('s', $nombreSecondesAAjouter, $heurecourante)
MsgBox( 64, "Heures Calculator of The Death !!", "Heure actuelle : " & StringRight($heurecourante, 8) & @CRLF & "Nouvelle heure : " & StringRight($res, 8))
.-SrB-. The One
NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
OUI ! AutoIt est un langage à part entière !
Dans SciTE sélectionnez 1 mot puis F1
Don't want english doc ?? go to documentation française !! >>ICI<< [/size]
pierrotm777
Membre émérite
Messages : 770 Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status :
Hors ligne
#11
Message
par pierrotm777 » ven. 22 oct. 2010 13:57
Merci de votre aide.
Cela devrait me convenir