bonjour;
je veux avoir les fonctions qui me permettre de savoir l'heure systeme, c'est à dire ( heure, minute) à un moment donné
bonjour;
je veux avoir les fonctions qui me permettre de savoir l'heure systeme, c'est à dire ( heure, minute) à un moment donné
voila pour UNix :
dans buf il y a toutes les info que tu veux
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 time_t clock; char *buf; int i; clock = time(NULL); buf = ctime(&clock);. affiche le et recupere ce que tu veux
et pour la version Windows :
tu as la solution un peux chiante ou il faut malloquer une structure :
mais il y a une alternative qui te permet de ne pas malloquer
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 #include <stdlib.h> #include <time.h> #include <stdio.h> int main(int ac, char **av) { time_t now; struct tm *when; time(&now); when = malloc(sizeof(struct tm)); when = localtime(&now); printf("when->tm_hour : %d\n", when->tm_hour); return (0); }
voila, tm_hour est un exemple... je ne sais pas quel compilo tu utilise, mais avec Visual C++ quand tu fait when. il t'affiche une liste avec tout ce que contient la structure et donc ce que tu peux utiliser, c'est tres complet
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 #include <time.h> #include <stdio.h> int main(int ac, char **av) { time_t now; struct tm when; time(&now); when = *localtime(&now); printf("when.tm_hour : %d\n", when.tm_hour); return (0); }
pour l'annee, si tu voit un truc bizarre, genre 102, c'est normal... c'est le nombre d'annee ecouler depuis l'an 1900donc pour avoir la vrai annee : when.tm_year + 1900
ceci donne bien 2002
(arf, bientot 103
)
si jamais au pire des cas tu utilise un IDE qui ne te donne pas la liste du contenu de la structure, tu peux toujours le demander ici ou aller voir sur MSDN Online![]()
Hum...
Fatalis, il y a un probleme dans ton premier code !
localtime() retourne un pointeur.
Lorsque tu fais:
Tu mets dans ton pointeur when l'adresse d'un espace alloué avec malloc(),
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 when = malloc(sizeof(struct tm)); when = localtime(&now);
puis juste après tu mets dedans le retour de la fonction localtime().
Résultat: tu perds l'adresse de la zone alloué.
Tu ne peux plus la désallouer...
En gros tu dois faire:
Au passage tu peux egalement faire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 time_t now; struct tm *when; time(&now); when = localtime (&now); printf("when.tm_hour : %d\n", when->tm_hour);
Quand à la structure tm c'est ca:
Code : Sélectionner tout - Visualiser dans une fenêtre à part when = localtime ( time(NULL) );
a++
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 struct tm { int tm_sec; /* seconds after the minute -- [0, 61] */ /* 60 and 61 for leap seconds */ int tm_min; /* minutes after the hour -- [0, 59] */ int tm_hour; /* hour since midnight -- [0, 23] */ int tm_mday; /* day of the month -- [1, 31] */ int tm_mon; /* months since January -- [0, 11] */ int tm_year; /* years since 1900 */ int tm_wday; /* days since Sunday -- [0, 6] */ int tm_yday; /* days since January 1 -- [0, 365] */ int tm_isdst; /* flag for daylight savings time */ long tm_tzadj; /* seconds from UTC (east < 0) */ char tm_name[LTZNMAX]; /* name of timezone */ };
bon bah voila, la honte sur ma gueule, je sais meme pas pourquoi j'ai fait un malloc trop trop inutile, de plus, etant alergique au fuite de memoire, la je viens de prendre un vieux coup dans la tronche![]()
C'est pas grâve ca arrive à tout le monde...
Mais bon la honte planera sur toi toute ta vie
bonne journée![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager