Hola,como soy novato en objetos,mirar en una clase fecha,yo tengo un metodo imprimir, en el que tengo que validar si el dia está entre 1 y 31 el mes entre 1 y 12 y que el año sea mayor que 0,tengo que hacerlo dentro del metodo?
si el codigo tengo dichos metodos:
Fecha::~Fecha(){
dia=-1;
mes=-1;
anyo=-1;
}
Fecha::Fecha(){
//fecha y hora del sistema
time_t ahora=time(0);
tm* localtm=localtime(&ahora);
dia=localtm->tm_mday;
mes=localtm->tm_mon+1;
anyo=localtm->tm_year+1900;
/*
//convertir a struct tm para fecha y hora local
tm* localtm=localtime(&ahora);
cout<<localtm->tm_mday <<"/"
<<localtm->tm_mon+1<<"/"
<<localtm->tm_year+1900<<endl;
*/
}
Fecha::Fecha(const Fecha &f){
dia=f.dia;
mes=f.mes;
anyo=f.anyo;
}
Fecha::Fecha(int d,int m,int a){
dia=d;
mes=m;
anyo=a;
}
bool Fecha::setDia(int d){
bool correcto=false;
if ((d>=1)&&(d<=31)){
correcto=true;
dia=d;
}
else {
dia=-1;
}
return correcto;
}
bool Fecha::setMes(int m){
bool correcto=false;
if ((m>=1)&&(m<=12)){
correcto=true;
mes=m;
}
else{
mes=-1;
}
return correcto;
}
bool Fecha::setAnyo(int a){
bool correcto=false;
if (a>0){
correcto=true;
anyo=a;
}
else{
anyo=-1;
}
return correcto;
}
lo que quiero preguntar si para validar,,,lo tengo que hacer dentro del metodo?
un saludo,espero respuesta.
void Fecha::Imprimir(ostream &os)const{
Fecha f2;
bool diacorrecto,mescorrecto,anyocorrecto;
os<<dia<<"/"<<mes<<"/"<<anyo;
cout<<endl;
//ahora vamos a validar
diacorrecto=f2.setDia(dia);
mescorrecto=f2.setMes(mes);
anyocorrecto=f2.setAnyo(anyo);
if((diacorrecto==false)||(mescorrecto==false)||(anyocorrecto==false)){
cout<<"fecha no valida"<<endl;
}
}