Bonjour,
Existe-t-il la possibilté de formater un entier pour représenter un horaire ?
Par exemple
int myHour = 1200;
Affichage après printf 12:00
Merci
Bonjour,
Existe-t-il la possibilté de formater un entier pour représenter un horaire ?
Par exemple
int myHour = 1200;
Affichage après printf 12:00
Merci
Pas à ma connaissance (mais je ne sais pas tout).
Par contre "int myHour = 1275;" tu le gères comment ?
L'utilisateur n'a pas le droit de le faire ou bien c'est à printf et son éventuel format de le gérer ?
Raymond
Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi
CafuroCafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
e-verbeUn logiciel de conjugaison des verbes de la langue française.
Ma page personnelle sur DVP.
C'est un peu plus compliqué que ça. Il faut une structure struct tm (<time.h>), initialiser les champs avec des valeurs valides, mettre les champs voulus à la valeur voulue (heures, minutes, secondes), appeler mktime() qui va mettre de l'ordre dans tout ça, puis appeler strftime() pour formater la chaine. Enfin, afficher la chaine.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 #include <stdio.h> #include <time.h> int main (void) { time_t t = time (NULL); struct tm tm = *localtime (&t); tm.tm_hour = 12; tm.tm_min = 00; tm.tm_sec = 00; { t = mktime (&tm); if (t != (time_t) - 1) { char s[16]; strftime (s, sizeof s, "%H:%M", &tm); printf ("'%s'\n", s); } } return 0; }Mais ce qui est rigolo, c'est que mktime() fait un vrai travail de normalisation. Si tu mets
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 '12:00' Process returned 0 (0x0) execution time : 0.040 s Press any key to continue.
ce code sort :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 tm.tm_hour = 12; tm.tm_min = 75; tm.tm_sec = 00;
75 = 60 + 15
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 '13:15' Process returned 0 (0x0) execution time : 0.025 s Press any key to continue.
soit 1:15.
12:00 + 1:15 = 13:15
Précisons tout de même que pour résoudre ce cas en particulier (et pas faire une solution générale), un simple
... suffit. Évidemment, ça implique un certain nombre de prérequis (on voit tous lesquels), mais ça répond à la question initiale.
Code : Sélectionner tout - Visualiser dans une fenêtre à part printf ("%02d:%02d\n",myTime/100,myTime%100);
Partager