Bonjour à tous,
Depuis pas mal de temps j’utilise dans mes Services Windows une fonction qui active un Timer. Ce matin, en voulant adapter mes horaires entre mes Services je me suis rendu compte que le résultat d'un horaire était bon mais ne devrait pas l'être...
Dans le texte What the F**
Valeur de MinutesTravaux = 5
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Start := IncMinute(Now,MinutesTravaux); if HourOf(Now) = HeureFin then Start := IncHour(Today,HeureDebut); Timer1.Interval := MilliSecondsBetween(Now, Start); Log( 'StartTimer : Now = '+FormatDateTime('dd/mm/yy hh:nn:ss',Now)+#13+ 'StartTimer : Start = '+FormatDateTime('dd/mm/yy hh:nn:ss',Start)+#13+ 'StartTimer : Interval = '+inttostr(Timer1.Interval));
Valeur de HeureDebut = 10
Valeur de HeureFin = 22
Pour hier soir et précisément le 10/12/2018 à 22:01:02 voici le résultat du Log
C'est exactement ce que je recherche mais cela ne devrait pas fonctionner ??StartTimer : Now = 10/12/18 22:01:02
StartTimer : Start = 11/12/18 10:00:00
StartTimer : Interval = 43137573
IncHour(Today,HeureDebut);
devrait me donner le 10/12/2018 à 10:00:00, non ?
Je devrais utiliser ceci : IncHour(Tomorrow,HeureDebut);
Et encore si l'heure Tomorrow est à 00 h 00 !! puisque j'ajoute IncHour()
J'ai reproduit la procédure ailleurs dans un programme visuel, via un Tbutton
Et là j'obtiens bien (pour aujourd'hui)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 procedure TForm1.sBitBtn3Click(Sender: TObject); var Start :TDateTime; Begin Start := StrToDateTime(DateToStr(Now())+'22:00:00') ; Voir(DateTimeToStr(Start)); Start := IncHour(Date(),10); Voir('Ajout de 10 heures ' + dateTimeToStr(Start)); end;
11/12/2018 à 22:00:00
ensuite
11/12/2018 à 10:00:00
Quelqu'un a-t-il déjà eu des soucis avec ce genre de manipulation ?
Partager