Tema: Automatas
Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/09/2005, 23:59
Avatar de Jorgemen
Jorgemen
 
Fecha de Ingreso: mayo-2005
Ubicación: Perú
Mensajes: 322
Antigüedad: 19 años
Puntos: 1
valida un hora

Código PHP:
function verificarHora($edValor)
        {
                
$es=false;        // indica si es falso o verdadero
                
$salir=false;    // mientras sea falso verifica....
                
$estado=0
                
$delantero=0;
                
$longitud=strlen($edValor);
                while(!
$salir)
                {
                    switch(
$estado)
                    {
                        case 
0:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if ((
$c=='0')||($c=='1'))
                            {
                                
$estado=2;
                            }
                            elseif(
$c=='2')
                            {
                                
$estado=3;
                            }
                            else 
                                
$estado=11;
                            break;
                        case 
2:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$this->esDigito($c))
                            {
                                
$estado=4;
                            }
                            else 
                                
$estado=11;
                            break;
                        case 
3:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if ((
$c=='0')||($c=='1')||($c=='2')||($c=='3'))
                            {
                                
$estado=4;
                            }
                            else 
                                
$estado=11;
                            break;
                        case 
4:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$c==':')
                            {
                                
$estado=5;
                            }
                            else 
                                
$estado=11;
                            break;
                        case 
5:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if ((
$c=='0')||($c=='1')||($c=='2')||($c=='3')||($c=='4')||($c=='5'))
                            {    
                                
$estado=6;
                            }
                            else 
                                
$estado=11;
                            break;
                        case 
6:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$this->esDigito($c))
                            {
                                
$estado=7;
                            }
                            else 
                                
$estado=11;
                            break;
                        case 
7:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$c==':')
                            {
                                
$estado=8;
                            }
                            else 
                                
$estado=11;
                            break;
                        case 
8:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if ((
$c=='0')||($c=='1')||($c=='2')||($c=='3')||($c=='4')||($c=='5'))
                            {    
                                
$estado=9;
                            }
                            else 
                                
$estado=11;
                            break;
                        case 
9:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$this->esDigito($c))
                            {
                                
$estado=10;
                            }
                            else 
                                
$estado=11;
                            break;
                        case 
10:    
                            if(
$delantero==$longitud)
                            {
                                
$es=true;
                                
$salir=true;
                            }
                            else
                            {
                                
$estado=11;
                            }
                            break;
                        case 
11:    
                            
$salir=true;
                            break;
                        default:
                            echo 
"ocurrio un error!!";
                    }    
// fin swhish
                
}     //fin while
            
return $es;
        }
//FIN verficarHora()