Fórum Somando Horas em uma Variável #152447
06/04/2003
0
Ex:
Digamos que eu tenho 07:20, se somar até 3 vezes esse valor da 22:00 Certo. O Problema é q seu somar a essas 22:00 h + 7:20 o Valor Fica 5:20.
Anonymous
Curtir tópico
+ 0Posts
07/04/2003
Ageualves
Gostei + 0
07/04/2003
Anonymous
a variável do tipo time só armazena até 24 horas
Gostei + 0
07/04/2003
Aroldo Zanela
Você deve converter as horas e minutos para a mesma base, no caso, em minutos;
Pegar as horas já acumuladas e somar com a nova quantidade de horas seguindo a regra acima;
Fiz um exemplo que suporta até 99h e 99min, basta você seguir o raciocínio para implementar uma rotina completa e adequada:
procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption:= IncHoras(Label1.Caption,MaskEdit1.Text); end; function TForm1.IncHoras(Acumulada, Adicionar: String): String; var hAcumulado: Integer; mAcumulado: Integer; hAdicionar: Integer; mAdicionar: Integer; QtdMinutos: Integer; nHoras, nMinutos: Integer; begin hAcumulado:= StrToInt(Copy(Acumulada,1,2)); mAcumulado := StrToInt(Copy(Acumulada,4,2)); hAdicionar := StrToInt(Copy(Adicionar,1,2)); mAdicionar := StrToInt(Copy(Adicionar,4,2)); // Converter tudo para a mesma base QtdMinutos := ((hAcumulado + hAdicionar)*60)+mAcumulado+mAdicionar; nHoras := Trunc(QtdMinutos/60);// Acha as horas acumuladas nMinutos:= QtdMinutos - (nHoras*60); Result:= StrZero(nHoras,2)+´:´+StrZero(nMinutos,2); end; function TForm1.StrZero(iNumero, iComp: Integer): String; begin Result := StringOfChar(´0´,iComp-Length(IntToStr(iNumero)))+IntToStr(iNumero); end;
Gostei + 0
07/04/2003
Aroldo Zanela
object Label1: TLabel Left = 240 Top = 150 Width = 27 Height = 13 Caption = ´00:00´ end object Button1: TButton Left = 94 Top = 78 Width = 75 Height = 25 Caption = ´Button1´ TabOrder = 0 OnClick = Button1Click end object MaskEdit1: TMaskEdit Left = 248 Top = 64 Width = 121 Height = 21 EditMask = ´00:00;1;_´ MaxLength = 5 TabOrder = 1 Text = ´ : ´ end
Gostei + 0
08/04/2003
Ageualves
Vou Pegar Esse seu Ex. e estudar com calma. :wink:
[]s
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)