
package ejemplofecha;

import java.text.SimpleDateFormat;

public class EjemploFecha {

    public static void main(String[] args) {
        
       Fecha fecha = new Fecha();
       try { 
             Fecha.filtrarFecha("04111969");
           
             fecha.setFecha(31, 11, 973);
             // fecha.setDia(28);
             // fecha.setMes(9);
             // fecha.setAño(1968);
             
             System.out.println("Fecha java.sql.Date formateada a cadena : "+new SimpleDateFormat("dd/MM/yyyy").format(fecha.getJavaSQLDate()));
           } 
             catch (ConversionNumeroExcepcion excepcion)
               { 
                   System.out.println(excepcion.getMensaje());
               }       
             catch (FechaExcepcion excepcion)
               {/*            //  TIPO TRATAMIENTO 1                                     
                  int codigosErrorDesglose[] = {1000, 100, 10, 1};
                  String mensajesErrorFecha[] = {"formato fecha erróneo", "día erróneo", "mes erróneo", "año erróneo"};
                  int codigoError = excepcion.getCodigoError();
                  byte contador = 0;
                  while (codigoError > 0) {
                     if (codigoError - codigosErrorDesglose[contador] >= 0) { 
                         System.out.println(mensajesErrorFecha[contador]);
                         codigoError = codigoError - codigosErrorDesglose[contador];
                     }
                     contador++;
                  }  
                */
                              //  TIPO TRATAMIENTO 2 
                  String mensajesErrorFecha[] = {"formato fecha erróneo", "día erróneo", "mes erróneo", "año erróneo"};
                  int codigoError = excepcion.getCodigoError();                           
                  int codigoErrorDesglose = 1000;               
                  for (byte contador = 0;  codigoError > 0;  contador++, codigoErrorDesglose = codigoErrorDesglose / 10) { 
                            System.out.println("--------------------------"+" REPETICION "+contador+" --------------------------");
                            System.out.println("contador : "+contador+"     codigoError : "+codigoError+"     codigoErrorDesglose : "+codigoErrorDesglose);   // visualiza valores que van tomando las variables
                     if (codigoError - codigoErrorDesglose >= 0) { 
                         System.out.println(mensajesErrorFecha[contador]);
                         codigoError = codigoError - codigoErrorDesglose;
                     }
                  }                 
                  
                /*            //  TIPO TRATAMIENTO 3 
                  switch (excepcion.getCodigoError())
                  {
                      case 1 :    System.out.println("año erróneo");
                                  break;
                      case 10 :   System.out.println("mes erróneo");
                                  break;
                      case 100 :  System.out.println("dia erróneo");
                                  break;
                      case 1000 : System.out.println("formato fecha erróneo");
                                  break;
                  }
                */
               }  
    }
}
