Demande d'aide sur c

Signaler
Messages postés
1
Date d'inscription
dimanche 14 janvier 2007
Statut
Membre
Dernière intervention
14 janvier 2007
-
 Utilisateur anonyme -
bonjour,  j'ai besoin de votre aide si c'est possible, j'ai un programme en c à faire et qui doit valider certains critérs parmis lesquels:
vérifier si lors de la saisie de la date de naissance ou aussi d'embauche d'un employé , la date est sous ce format jj/mm/aa merci si vous pouvez m'aider j'attend vos interventions merci d'avances

3 réponses

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Il n'y a pas vraiment de moyen sauf peut-être de tester les entrées.
Exemple:
if(jour > 31 || mois > 12) return 0; // Si au format décimal bien sûr

C++ (@++)<!--
Messages postés
178
Date d'inscription
mardi 16 août 2005
Statut
Membre
Dernière intervention
25 août 2010
1
tu peux essayer quelque chose comme ca... à améliorer bien sur mais ca fait le job basiquement...

#define SIZE_DATE 8

int validation_date(char *buffer)
{
    int nb, jour, mois, annee;
    nb jour mois = annee = 0;
 
    if(buffer)
    {        if (strlen(buffer) SIZE_DATE && buffer[2] '/' && buffer[5] == '/')
        {        
            nb = sscanf(buffer, _T("%2d/%2d/%2d"), &jour, &mois,  &annee);
        }

        if(nb == 3  && jour>0 && jour<32 && mois>0 && mois<13)
        {
            return 1;
        }
    }

    return 0;
}

utilise strtok pour découper la chaine et strcmp pour vérifier tes critères (en comparant deux chaines), tu pourrais aussi avoir besoin de strtol ou atoi pour convertir une chaine en entier pour faciliter tes tests.

yeah! vive java