Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Determinar el tiempo en mi aplicacion... (https://www.clubdelphi.com/foros/showthread.php?t=32415)

Coco_jac 05-06-2006 22:12:15

Determinar el tiempo en mi aplicacion...
 
Hola amigos, tengo una duda, miren tengo una aplicacion donde se muestran unos mensajes programados, la aplicaion se ejecutara a las 12:30 p.m.(hora de refrigerio), la cual mostrara un formulario dando aviso de esto, y se volvera activara nuevamente a las 5:45 p.m. (hora salida), pero esta vez se mostrara otro formulario, mi duda es esa, mi idea era preguntar la hora del sistema y segun esto mostrar el mensaje correspondiente, pero ahi es donde me tranqueo porque no se como comparar esto, creo que no es la manera correcta de comparar la hora, por eso recurro a ustedes, y una ultima cosa en el caso de ser a.m. o p.m., como seria???
Código Delphi [-]
   if FormatDateTime('hh:mm',Time) = '03:07' then  
      ...........codigo.....
OBS : NO obtengo resultado de el codigo mostrado y la programacion de la tarea es atravez de Windows

espero sus comentarios

dec 05-06-2006 23:00:46

Hola,

Puedes comparar horas tranquilamente, como harías con "enteros". O sea, supongamos que tenemos una entrada de tipo "string" con la hora del almuerzo:

Código Delphi [-]
var
  horaAlmuerzo: TTime;
begin
  horaAlmuerzo := StrToTime('12:00');

Nada nos impide comparar la hora del almuerzo con la hora actual, por ejemplo, de manera que sepamos si ya pasó la hora del almuerzo, si no llegamos a ella, si es justo la hora del almuerzo...

Código Delphi [-]
  if(Time < horaAlmuerzo) then
  begin
    // Aún no es la hora del almuerzo
  end
  else if(Time > horaAlmuerzo) then
  begin
    // Ya pasó la hora del almuerzo
  end
  else if(Time = horaAlmuerzo) then
  begin
    // ¡A almorzar! ;-)
  end;

No sé si te refieres a algo así o qué... :D

vtdeleon 05-06-2006 23:04:55

No soy quien para decirte si es la manera correcta, pero funciona:p
Código Delphi [-]
if FormatDateTime('hh:mm AM/PM',now) = '05:08 PM' then
    ShowMessage('blablaba');

Lepe 06-06-2006 10:48:45

Yo propongo hacerlo al contrario, es decir, programar un Timer para la hora de almuerzo y olvidarte de chequear la hora cada dos por tres.

Cuando arranques el programa, miras la fecha actual y averiguas la fecha de almuerzo (con RecodeDateTime o funciones similar es fácil), ahora hallas los milisegundos que faltan para la hora de almuerzo (MillisecondsBetween(FechaHoraAlmuerzo, now)) y ese resultado se lo añades a un TTimer.Interval, conectas el Timer... y a esperar la hora del almuerzo ;).

En el evento OnTimer, vuelves a programar el evento para la hora de salida y listo.

Todas las funciones comentadas están en la unidad DateUtils de Delphi.

Saludos


La franja horaria es GMT +2. Ahora son las 23:06:44.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi