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
| std::stringstream ss;
ss<<str;
/* il faut un entier pour l'année, un entier pour le mois et un dernier
* pour le jour
*/
int annee;
int mois;
int jour;
/* et il faut un caractère pour le slash;
char slash;
/* récupérons le tout */
ss>annee>>slash>>mois>>slash>>jour;
/* testons si l'année correspond à ce que l'on attend
* ici, elle doit etre comprise entre 1900 et 2100
* mais ce n'est qu'un exemple ;)
*/
if(annee<1900 || annee> 2100)
std::cout<<"L'annee doit etre comprise entre 1900 et 2100"<<std::endl;
/* le mois doit etre compris entre 1 et 12 */
if(mois<1 || mois >12)
std::cout<<"le mois doit être compris entre 1 et 12"<<std::endl;
/* idéalement, il faudrait gérer les années bissextiles pour le mois
* de février mais nous considérerons qu'il est composé de
* maximum 29 jours, pour la facilité ;)
*/
int dayByMounth[12]={31, 29, 31, 30, 31, 30,
31, 31, 30, 31, 30, 31};
if(jour<1 || jour>dayByMounth[mois-1])
std::cout<<" le nombre de jour doit être compris entre 1 et "
<<dayByMounth[mois-1]<<std::endl; |
Partager