Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/04/2016, 16:50
Avatar de agusax
agusax
 
Fecha de Ingreso: junio-2011
Ubicación: Puerto Real (Cádiz)
Mensajes: 74
Antigüedad: 13 años, 6 meses
Puntos: 3
Duda puntual: Cadenas de fechas

Hola chic@s
Tengo un problemilla y es que no me viene a la mente como solucionar el siguiente problema:

Tengo este programa de test:
Código C++:
Ver original
  1. FCT_TEST_BGN(Fecha - Comparacion: desigualdad) {
  2.       const Fecha f(1, 2, 2000);
  3.       const Fecha g(f);
  4.       const Fecha h(2, 3, 2001);
  5.       fct_chk(!(f != g));
  6.       fct_chk(f != h);
  7.       fct_chk(f != "00002/003/02001"); // Problema en esta linea
  8.       fct_chk("1/1/2001" != g);
  9. }

Mi constructor a partir de una cadena de la siguiente manera:
Código C++:
Ver original
  1. Fecha::Fecha (const char *fecha){
  2.     int iCheck;
  3.  
  4.     iCheck = sscanf(fecha, "%02d/%02d/%04d", &iDia_, &iMes_, &iAno_);
  5.     if(iCheck == 3){
  6.         fecha_actual();
  7.         if(!es_valida(iDia_, iMes_, iAno_))
  8.             throw Invalida("Error: No ha introducido una fecha correcta"); 
  9.     }
  10.     else{
  11.         throw Invalida("Error: Formato de fecha no valido. Formato valido: dd/mm/aaaa");
  12.     }
  13. }

El caso es que me da el siguiente problema:
Código:
terminate called after throwing an instance of 'Fecha::Invalida'
Fecha - Comparacion: desigualdad ..................................Abortado
La clase Invalida está dentro de la clase Fecha:
Código C++:
Ver original
  1. class Invalida {
  2.     public:
  3.         Invalida(const char* cError) : cError_(cError) {}
  4.         const char* por_que() const noexcept;
  5.  
  6.     private:
  7.         const char* cError_;
  8. };

No sabría como solucionar esa devolución del error.
Muchas gracias por su tiempo

PD: no sé si debería controlar la cantidad de ceros a la izquierda, ya que el otro método de test de fecha incorrecta funciona correctamente
__________________
"Nunca confíes en un ordenador que no puedas lanzar por una ventana" -- Steve Wozniak
"El software es como el sexo: mejor si es libre y gratis" -- Linus Torvalds

Última edición por agusax; 17/04/2016 a las 16:56