Bonsoir & bonne année
je suis nouvelle ici et j espère recevoir vos réponses
en fait je me noie dans un exercice et j 'ai besoin d'aide svplé
je dois ecrire une fonction qui demande une date et vérifie la validité de la date qui doit etre sous la forme d une chaine de caractere ( jj/mm/aaaa)
exigences:
*utiliser une fonction int verifier (char ch[]) ( qui vérifie la validité de la date )et des variables booléennes
transformer les caractère vers des chiffres
*l'année doit contenir 4 chiffres( aaaa) et doit etre à partir de 1000
*faut prendre en consideration que le mois de février compte 28 jours sauf si l’année est bissextile, auquel cas il en compte 29. L’année est bissextile si elle est divisible par quatre. Toutefois, les années divisibles par 100 ne sont pas bissextiles, mais les années divisibles par 400 le sont....
*faut prendre en consideration si l utilisateur tape par exemple jj:mm:aaaa
en tous cas faut afficher une date sous la forme jj/mm/aaaa ( 10 caractères)
mon programme : #include <conio.h>
#include <stdio.h>
//fonction qui verifie si une année est bisextille ou pas
int bisextille (int annee)
{
int res = 1;
if ((annee % 400 == 0) || ((annee % 100 != 0) && (annee % 4 == 0)))
res = 1;
else
res = 0;
return res;
}
//fonction qui vérifie que jour mois annee en nombre est valide
int estDateNumeriqueValide(int jour, int mois, int annee)
{
int bis;
int A,B,C,D;
int valide=1;
bis=(bisextille(annee));
// 7 mois ont 31 jours
// 4 mois ont 30 jours
//1 mois a 28 ou 29 jours selon l'année si elle est bisextille ou pas
if(bis) //si l annee est bisextile
if(A || B || D)
valide=1; //la date en nombre est correcte
else //sinon
valide=0;//la date n 'est pas correcte
else //si l 'année n est pas bisextille
if(A || B || C)
valide=1;
else
valide=0;
return valide;
}
//fonction qui saisie la date
void saisieDate (int jour, int mois, int annee)
{
do
{
printf ("\t\t\tEntrez la date (jour/mois/annee)\n\n\n" );
printf ("jour : " );
scanf ("%d", &jour);
printf ("mois : " );
scanf ("%d",&mois);
printf ("annee : " );
scanf ("%d", &annee);
} while (!(estDateNumeriqueValide (jour, mois, annee)));
}
MAIS ME RESTE PAS MAL DE CHOSES à FAIRE :
convertir les caractère en nombre
vérifier le format de la chaine date 'JJ/MM/AAAA' ) ( en utilisant une fonction int FormatDate ) ...
pour vérifier le format de la chaine je crois qu il faut calculer la longueur de la chaine , le plus facil c de demander la date en 3 fois ,on calcul la longueur des jours et des mois par exemple (longueur_j=2) aprés si (longueur_j==2) c gagné on affiche le jour et le mois sinon un envoie un msg d erreur , de meme pour la longueur des année sauf qu il faut l initialisé par 4 (longueur_aaaa=4)
c bien ça??
depuis hier j essaye de faire cet exercice mais je blouqe si vous pouvez m aider un peu je serai trés reconnaissante ,
merci d avance
(
Le message qui suit est une réponse automatique.
Les réponses automatiques nous permettent d'éviter de répéter de nombreuses fois la même chose, et donc de gagner beaucoup de temps.
Nous sommes néanmoins ouvert à toute question ou remarque, n'hésite pas à me contacter par messagerie privée à ce sujet.
Merci d'utiliser les balises de code
Bonjour,
Les forums du Site du Zér0 disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source.
Tu as posté un code source sans utiliser cette fonctionnalité. Pourrais-tu éditer ton message afin d'ajouter ces balises ? Pour cela, sélectionne ton code à colorer et utilise le bouton afin de choisir la coloration adaptée. Veille à bien choisir le langage de programmation afin que la coloration soit pertinente.
De plus, veille à ce que ton code soit correctement indenté.
Afin de ne pas surcharger le sujet, ne poste pas ton code coloré dans un nouveau message mais édite le premier (grâce au bouton ).
Cela aura pour effet de "colorer" ton code et donc d'en faciliter grandement la lecture. Tu auras ainsi beaucoup plus de chances d'avoir des réponses.
Voici un exemple de code non coloré (mauvais exemple) :
int main(int argc, char *argv[])
{
long choixOperation;
printf("Choisissez l'operation a effectuer");
/* etc. */
}
Voici maintenant le même code coloré, utilisant la balise "code" (bon exemple) :
int main(int argc, char *argv[])
{
long choixOperation;
printf("Choisissez l'operation a effectuer");
/* etc. */
}
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Mon site perso / Retrouvez tous mes tutoriels vidéos à propos de Symfony2 sur Grafikart.fr