Bonjour,
Je travaille sous Lazarus 1.6, et je teste les fonctions de gestion des dates des heures en créant un programme qui calcule des durées. En faisant quelques essais, je tombe sur une petite erreur que je n'arrive pas à corriger.
Ce n'est pas bien grave, mais c'est par curiosité :
Je pose une date/heure, Date1, à laquelle j'ajoute quelques minutes (5 par exemple) pour obtenir une seconde date, Date2. Ensuite j'utilise la fonction MinutesBetween pour récupérer la durée entre les 2 dates et ça me renvoie 4 au lieu de 5. Si j'utilise la fonction MinuteSpan, j'ai effectivement une valeur proche de 5 (4.9999999953433871), mais qui n'est pas 5.
Est-il possible de corriger cette légère approximation ? A quoi est-elle due ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 program Test; uses sysUtils, DateUtils; var Date1, Date2: TDateTime; begin Date1:=now(); Date2:=IncMinute(Date1, 5); writeln(MinutesBetween(Date1, Date2)); writeln(MinuteSpan(Date1, Date2)); readln(); end.
Merci de vos éclairages.
Partager