Bonjour,
J'essaye de faire de la manipulation de dates en C (je débute en C), j'ai donc commencé par vouloir transformer une date (format dd/mm/YYYY) en timestamp.
Voici ma source:
Je le compile bien, sans warning ni erreur, mais sitôt que je veux le lancer, j'ai une erreur de segmentation, je ne vois pas ce qui peut provoquer cela.
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
26
27
28
29
30
31
32 #include <stdio.h> #include <time.h> char *test = "23/06/2003"; void main(char *test) { double tmp; char s[10]; printf("Orig : %s\n", test); tmp = getDate(test); printf("TS : %d\n", tmp); } double getDate( char *mdate) { struct tm t; double tbday = 0; char s[10]; printf("Having date: %s\n", mdate); if (sscanf(mdate, "%d/%d/%d", t.tm_mday, t.tm_mon, t.tm_year) == 3) { t.tm_mon -= 1; t.tm_year -= 1900; t.tm_hour = 12; t.tm_min = 0; t.tm_sec = 0; t.tm_isdst = 0; if (strcmp(strftime(s, 10, "%d/%m/%Y", &t), mdate) == 0) { tbday = mktime(&t); } } return tbday; }
Et mon but est de comparer la date donnée avec la date du jour (pour obtenir un âge), est-ce que cela pourra fonctionner avec des dates de naissance d'avant 1970 ?
Merci de votre aide !
Partager