Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Comparar horas

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio
Mensaje Mar Dic 04, 2007 3:40 pm
alcidesalarcon
Perlero Nuevo
Perlero Nuevo
Registrado: 04 Dic 2007
Mensajes: 1
Comparar horas Responder citando

Hola compañeros...

¿Cómo puedo comparar si la hora actual hora está dentro de un rango?

El ejemplo sería:

Código:
HorarioAtencionInicial = 09:00
HorarioAtencionFinal = 18:00


Entonces, necesito saber si la hora que ejecuto el script entra en ese rango de horario.

Sería:

Código:
Si (HorarioAControlar >= HorarioAtencionInicial y
     HorarioAControlar <= HorarioAtencionFinal)
     
     return VERDADERO
SINO
     return FALSO
FIN-SI


Desde ya muchas gracias.

Saludos.
Mensaje Mar Dic 04, 2007 5:52 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4222
Ubicación: Valladolid, España
Responder citando

Bienvenido a los foros de Perl en Español, alcidesalarcon.

La comparación de horas se puede hacer fácil, si hacemos una comparación alfabética, con la condición de que las horas estén bien escritas.

Perl:
#!/usr/bin/perl

$HorarioAtencionInicial = '09:00';
$HorarioAtencionFinal   = '18:00';

sub dentro_del_rango {
    my $HorarioAControlar = shift;

    return
            $HorarioAControlar gt $HorarioAtencionInicial
        and
            $HorarioAControlar lt $HorarioAtencionFinal
}

my @horas = qw(
    16:24
    09:42
    03:00
);

foreach my $hora ( @horas ) {

    print "$hora ";

    if ( not dentro_del_rango($hora) )  {
        print 'no ';
    }

    print "está dentro del rango\n";
}


Código:
16:24 está dentro del rango
09:42 está dentro del rango
03:00 no está dentro del rango
Mensaje Mar Dic 04, 2007 7:28 pm
Jenda
Perlero Frecuente
Perlero Frecuente
Registrado: 29 Oct 2007
Mensajes: 108
Ubicación: Praga, Republica Checa
localtime() y sprintf() Responder citando

Y para obtener la hora actual, bien escrita, se puede usar localtime() y sprintf().
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group