Heure

TrollTop Messages postés 10 Date d'inscription vendredi 9 juin 2006 Statut Membre Dernière intervention 19 juillet 2007 - 2 juil. 2007 à 15:46
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 - 2 juil. 2007 à 19:34
Bonjours,

J'ai 2 textbox et une label
dans les textbox je rentre l'heure de début et l'autre l'heure de fin .
je veux avoir la différence entre les 2 et mettre cette différence dans le label.

textBox1=heures de début  textBox2=heures de fin  label1=nombre total d'heures entre les 2 textBox.
                     10:00                                 16:00                =     6:00 heures

C++

Merci beaucoup d'avance pour votre réponse.

TrollTop

4 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
2 juil. 2007 à 16:22
Tu aurais pu préciser, dans l'autre post, qu'il était question de l'heure.
Bon:

char buffer[6], *c = buffer;
char result[6];
int h1, m1, h2, m2;

GetWindowText(textbox1, buffer, sizeof(buffer));
while(*c !':') c++; *c++ 0;h1 atoi(buffer); m1 atoi(c);

c = buffer;
GetWindowText(textbox2, buffer, sizeof(buffer));


while(*c !':') c++; *c++ 0;

h2 atoi(buffer); m2 atoi(c);

if(h2 < h1) h2 = 24+h2;
if(m2 < m1) { h2--; m2 = 60+m2; }

itoa(h2-h1, buffer, 10);
strcpy(result, buffer); strcat(result, ":");
itoa(m2-m1, buffer, 10);
strcat(result, buffer);

SetWindowText(label, result);

Je n'ai pas commenté volontairement pour que tu essais de bien comprendre par toi-même ce qui est fait dans le code.

C++ (@++)<!--
TrollTop Messages postés 10 Date d'inscription vendredi 9 juin 2006 Statut Membre Dernière intervention 19 juillet 2007
2 juil. 2007 à 16:29
Merci Beaucoup,
Je vais essayer de comprendre comme il faut comment ca marche ya beaucoup de nouveau pour moi dans ce code
té hot pas a peux près

Merci encore.
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
2 juil. 2007 à 19:29
On peut aussi se passer de strcat et strcpy comme ceci:

char buffer[6], *c = buffer;
char result[6], *d = result;
int h1, m1, h2, m2;

GetWindowText(textbox1, buffer, sizeof(buffer));
while(*c !':') c++; *c++ 0;h1 atoi(buffer); m1 atoi(c);

c = buffer;
GetWindowText(textbox2, buffer, sizeof(buffer));
while(*c !':') c++; *c++ 0; h2 atoi(buffer); m2 atoi(c);

if(h2 < h1) h2 = 24+h2;
if(m2 < m1) { h2--; m2 = 60+m2; }

itoa(h2-h1, buffer, 10); c = buffer;
*d++ = *c++;
if(*c) *d++ = *c;
*d++ = ':';
itoa(m2-m1, buffer, 10); c = buffer;
*d++ = *c++;
if(*c) *d++ = *c;
*d = 0;

SetWindowText(label, result);

C++ (@++)<!--
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
2 juil. 2007 à 19:34
Ah c'est du .NET (précisé par MP). Dans ce cas, oublie ce code et précise dans le titre ou dans le message la prochaine fois.

C++ (@++)<!--
Rejoignez-nous