Ir al contenido


Foto

[RESUELTO] Calcular el tiempo entre dos horas


  • Por favor identifícate para responder
6 respuestas en este tema

#1 Fleon

Fleon

    Advanced Member

  • Miembros
  • PipPipPip
  • 172 mensajes
  • LocationRepública Dominicana

Escrito 14 marzo 2010 - 02:28

¿cómo sacar la duración entre dos horas?, por ejemplo, desde las 5:00 pm hasta las 8:00 pm son 3 horas, ¿cómo lo hago en delphi?.

Fleon xD.
  • 0

#2 axesys

axesys

    Advanced Member

  • Moderadores
  • PipPipPip
  • 640 mensajes
  • LocationLos Mochis

Escrito 14 marzo 2010 - 02:54

Agrega en el uses la unidad DateUtils y usa la función HoursBetween


Saludos
  • 0

#3 seoane

seoane

    Advanced Member

  • Moderador
  • PipPipPip
  • 1.257 mensajes
  • LocationEspaña

Escrito 14 marzo 2010 - 03:00

O puedes restar directamente:


delphi
  1. var
  2.   h1, h2: TDateTime;
  3. begin
  4.   h1:= StrToTime('05:00 pm');
  5.   h2:= StrToTime('08:00 pm');
  6.   ShowMessage(TimeToStr(h2-h1));
  7. end;



Y si solo quieres las horas enteras:


delphi
  1. var
  2.   h1, h2: TDateTime;
  3. begin
  4.   h1:= StrToTime('05:00 pm');
  5.   h2:= StrToTime('08:00 pm');
  6.   ShowMessage(IntToStr(Trunc((h2-h1)*24)));
  7. end;


  • 0

#4 Fleon

Fleon

    Advanced Member

  • Miembros
  • PipPipPip
  • 172 mensajes
  • LocationRepública Dominicana

Escrito 14 marzo 2010 - 03:16

Hola, gracias a ambos, axesys, esa sólo me devuelve un número entero, seoane la primera no me calcula el tiempo transcurrido entre dos horas me muestra como una hora cualquier ( 12:00:00 am) y la segunda sólo me muestra los enteros, lo que necesito es que me muestre, por ejemplo entre dos horas cualquiera algo como 7:31 horas transcurridos.

Fleon xD
  • 0

#5 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.035 mensajes
  • LocationSanto Domingo

Escrito 14 marzo 2010 - 03:39

usando dateutils como dice axexys


delphi
  1. procedure TForm1.btn1Click(Sender: TObject);
  2. var
  3.   h,m,s,ml:word;
  4. begin
  5. DecodeTime(strtotime(Edit2.text)-(StrToTime(edit1.text)), H, M, S,ml);
  6.  
  7.  
  8. mmo1.lines.add(IntToStr(h));
  9. mmo1.lines.add(IntToStr(m));
  10. mmo1.lines.add(IntToStr(s));
  11. //mmo1.lines.add(IntToStr(ml));
  12.  
  13. end;
  14.  



puse dos edits, un memo y un boton para que puedas probar.

no se de donde obtienes los valores, pero si ya son tipo time no tienes que hacer la conversion y es mas facil todavia.

por cierto las variables equivalen a hora, minutos, segundos, milisegundos.

  • 0

#6 Caral

Caral

    Advanced Member

  • Administrador
  • 4.262 mensajes
  • LocationCosta Rica

Escrito 14 marzo 2010 - 03:46

Hola


delphi
  1. var
  2. hora: TDateTime;
  3. begin
  4.   Hora:= StrToTime(Edit2.Text)- StrToTime(Edit1.Text);
  5.   Edit3.Text:= FormatDateTime('hh:mm',Hora)+' Hora de Diferencia';
  6. end;


Saludos
  • 0

#7 Fleon

Fleon

    Advanced Member

  • Miembros
  • PipPipPip
  • 172 mensajes
  • LocationRepública Dominicana

Escrito 14 marzo 2010 - 03:53

Hola, el de Caral me funciona de perlas, gracias a todos.

Fleon xD
  • 0