Probleme en langage c

nedoura20doudi Messages postés 2 Date d'inscription dimanche 9 mars 2008 Statut Membre Dernière intervention 13 mai 2009 - 9 mars 2008 à 15:53
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 - 9 mars 2008 à 19:40
slt à tous,je veux savoir comment faire pour mettre une condition sur une date:jj/mm/aaaa
par exemple le mois 03(mars):si on entre 31/03/2008 il va m'afficher date invalide parceque le mois mars contient 30 jours,
comment faire??

des problémes en langage c

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 mars 2008 à 16:19
On fait l'ensemble avec atoi() et quelques if, propose nous au moins un début de travail.

ciao...
BruNews, MVP VC++
0
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
9 mars 2008 à 17:21
Le lundi 31 mars 2008 existe sur mon calendrier !!! un bug de l'imprimeur ???

Jean-François
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
9 mars 2008 à 19:40
Salut,
Il est possible de faire une fonction de vérification de la date. Elle s'appelera par exemple IsDateValid(). Elle prendra comme seul paramètre la chaine contenant la date à controler. Elle retournera TRUE ou FALSE selon le résultat du controle.
La procédure à suivre n'est pas compliquée.
- Déclarer et initialiser un tableau de 12 éléments dont chacun correspond au nombre maximal de jours du mois.
- Décomposer la chaine date en 3 sous-chaines: jour, mois et  annee.
- Convertir les trois sous-chaines en entiers.
- Comparer chaque entier jour avec la valeur maximale du tableau pour le mois correspondant.
- Pour février il faudra déterminer si l'année est bisextile ou non por accepter les valeurs 29 ou 28.
- Retourner FALSE dès qu'il y'a non concordance.
0
Rejoignez-nous