Jump to content


Photo

[RESUELTO] Calcular el tiempo entre dos horas


  • Please log in to reply
6 replies to this topic

#1 Fleon

Fleon

    Advanced Member

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

Posted 14 March 2010 - 02:28 PM

¿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 posts
  • LocationLos Mochis

Posted 14 March 2010 - 02:54 PM

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


Saludos
  • 0

#3 seoane

seoane

    Advanced Member

  • Administrador
  • 1259 posts
  • LocationEspaña

Posted 14 March 2010 - 03:00 PM

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 posts
  • LocationRepública Dominicana

Posted 14 March 2010 - 03:16 PM

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
  • 2040 posts
  • LocationSanto Domingo

Posted 14 March 2010 - 03:39 PM

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

  • Moderador
  • PipPipPip
  • 4266 posts
  • LocationCosta Rica

Posted 14 March 2010 - 03:46 PM

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 posts
  • LocationRepública Dominicana

Posted 14 March 2010 - 03:53 PM

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

Fleon xD
  • 0




IP.Board spam blocked by CleanTalk.