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
| int conversion24Heures(char * s_line, char * dest)
{
char Date[11];
int Heure;
char Minute[4];
char TypeHeure[3]= {0};
int Ok = 1;
int i = sscanf(s_line , "%*[^0-9]%s %d %s %s", Date , &Heure, Minute, TypeHeure);
// Dans le cas où aucun texte ne précède la date/heure, le %*[^0-9] du sscanf() précédent a échoué.
// Alors on recommence
if(i==0) i = sscanf(s_line , "%s %d %s %s", Date , &Heure, Minute, TypeHeure);
switch(i)
{
case 4 : //format 12h : conversion en 24h
if(strcmp(TypeHeure,"AM")==0 || strcmp(TypeHeure,"am")==0)
{
if(Heure ==12) Heure = 0;
}
else if(strcmp(TypeHeure,"PM")==0 ||strcmp(TypeHeure,"pm")==0)
{
if(Heure != 12) Heure += 12;
}
else Ok = 0; //erreur
case 3 : //format 24h
break;
default : Ok = 0; //erreur
}
//Ecriture en format 24h
if(Ok) sprintf(dest, "%s %02d%s", Date, Heure,Minute);
else dest[0] = '\0';
return Ok;
} |
Partager