Calcul d'heure

chantalehoule Messages postés 3 Date d'inscription mardi 31 août 2004 Statut Membre Dernière intervention 25 août 2005 - 31 mars 2005 à 22:49
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 - 1 avril 2005 à 17:31
Bonjour j'aimerais avoir une fonction qui calcul le nombre d'heure entre 2 dates
Ayant plus de 24 heures d'intervalles!

Et en même temps y a t'il quelqu'un qui aurait une fonction pour calculer l'heure a partir d'un real

Exemple je fait la difference entre 2 dates je met le résultat dans un real exemple de résultat 9.9792

les dates de départ sont

2005-03-07 06:00:00

2005-03-04 06:30:00

Merci d'avance
A voir également:

10 réponses

cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
1 avril 2005 à 08:22
Salut,



Comme dit l'aide :

La partie entière d'une valeur
TDateTime de Delphi représente le nombre de jours écoulés depuis le
30/12/1899. La partie fractionnaire de la valeur TDateTime est la
partie des 24 heures écoulée.


Eh oui, TDateTime est un réel. Donc :



var

Diff: Real;

Heures: Integer;

Format: TFormatSettings;

begin

// les trois lignes suivantes pour reconnaitre ton format de date

// un peu spécial

GetLocaleFormatSettings(0, Format);

Format.ShortDateFormat := 'yyyy MM dd';

Format.DateSeparator := '-';



Diff := StrToDateTime('2005-03-07 06:00:00', Format) -

StrToDateTime('2005-03-04 06:30:00', Format);

Heures := Trunc(Diff * 24);

end;









Ken@vo


Code, Code, Codec !
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
1 avril 2005 à 15:12
Salut Ken@vo,



Pourrais-tu m'indiquer dans quelle unité se trouvent le record
TFormatSettings ainsi que la procedure GetLocaleFormatSettings() ? Et
éventuellement la (les) version(s) de Delphi où ils sont disponibles ?



Google à l'air de me suggérer que c'est dans SysUtils, mais je ne les y ai pas trouvés, ni sous D4, ni sous D6...



Je vais continuer mes recherches, mais si tu peux m'éclairer... je te remercierai pour l'économie de moyens déployés ;)



japee



Bonne prog'
0
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
1 avril 2005 à 15:23
Mon bon Japee,



Je présente toutes mes excuses aux proprios de D6, D5, D4 ... pour
avoir évoqué ces fonctions de D7 sans me poser la moindre question.

Alors que loin de snober nos amis (sous)développeurs, je verifie en général avec mon D4.



Type et fonctions sont déclarés dans SysUtils !.....



Je vais essayer de trouver l'équivalent en Delphi 4 et en vitesse.



Ken@vo


Code, Code, Codec !
0
chantalehoule Messages postés 3 Date d'inscription mardi 31 août 2004 Statut Membre Dernière intervention 25 août 2005
1 avril 2005 à 15:26
J'aurais besoin de savoir l'heure les minutes et les secondes aussi

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
1 avril 2005 à 15:28
... et quand je dis en vitesse ...



var

Diff: Real;

Heures: Integer;

begin

// modifications du format date

ShortDateFormat := 'yyyy MM dd';

DateSeparator := '-';

Diff := StrToDateTime('2005-03-07 06:00:00') -

StrToDateTime('2005-03-04 06:30:00');

Heures := Trunc(Diff * 24);end;

end.



Ken@vo


Code, Code, Codec !
0
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
1 avril 2005 à 15:48
Donc, avec heures minutes, secondes, empressement et peu d'inspiration :



var

Diff: Real;

Heures, Minutes, Secondes: Integer;

begin

ShortDateFormat := 'yyyy MM dd';

DateSeparator := '-';

Diff := StrToDateTime('2005-03-07 06:00:00') -

StrToDateTime('2005-03-04 06:30:00');

Diff := Diff * 24 *60 *60;

secondes := round(Diff) mod 60;

Diff := (Diff - Secondes) / 60;

minutes := round(Diff ) mod 60;

Diff := (Diff - Minutes) / 60;

Heures := round(Diff ) ;

end;





Ken@vo


Code, Code, Codec !
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
1 avril 2005 à 15:56
Il semblerait que GetLocaleFormatSettings soit apparu avec Delphi 7.



Ok, on fera "sans"...



Bonne prog'



japee
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
1 avril 2005 à 16:01
Oups, j'avais pas lu les messages postés entre-temps, désolé !



Merci, ô Ken@vo, de t'être penché avec tant de bienveillance et de célérité sur les problèmes des programmeurs "d'en bas".



Sois-en amicalement remercié !



Bonne prog'



japee
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
1 avril 2005 à 16:11
J'avais oublié le poisson...
0
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
1 avril 2005 à 17:31
Mon bon
Japee,



Si GetLocaleFormatSettings n'est effectif que depuis Delphi 7, il n'en
reste pas moins que les variables concernées sont accessibles
dans
l'unité SysUtils et le plus grand désordre.


Le gros avantage est, il me
semble, de pouvoir déclarer plusieurs variables de type
TFormatSettings, et ainsi de jongler avec plusieurs
possibilités de formatage sans trop s'emmêler le clavier.



Halieutiques salutations !






Ken@vo



Code, Code, Codec !
0
Rejoignez-nous