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:
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;
 
}
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.

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 !