Ir para conteúdo
Fórum Script Brasil
  • 0

[resolvido] Contador De Tempo


Eder

Pergunta

Ola..pessoal...tenho que fazer uma rotina envolvendo contagem de horas....eu até fiz um if...mas é muito trabalhoso.....acho que teria uma maneira de fazer com codigo mais enxuto e simples..mas não to conseguindo montar o codigo.

fiz assim atraves de if...funcionar perfeito:

procedure TForm1.Button1Click(Sender: TObject);
var HrTotal : TdateTime;
begin
HrTotal:=STRTOTIME(Maskedit1.Text);
//
If Hrtotal <= StrToTime('12:00:00') then
Begin
Maskedit2.Text:=('09:00:00');
Exit;
end;
{se for hora superior a 12:00:00 ele paga 09:00:00
e assim por diante como esta abaixo até zerar a hora do maskedit2 }
If Hrtotal = strtotime('12:01:00') then Begin Maskedit2.Text:=('08:59:00'); end;
If Hrtotal = strtotime('12:02:00') then Begin Maskedit2.Text:=('08:58:00'); end;
If Hrtotal = strtotime('12:03:00') then Begin Maskedit2.Text:=('08:57:00'); end;
If Hrtotal = strtotime('12:04:00') then Begin Maskedit2.Text:=('08:58:00'); end;
end;

é como esta no codigo acima o raciocinio...mas note que fiz um if pra verificar as horas minutos e dizer o que vai receber no maskedit2 mas é muito codigo...acho que um contador resolveria...

O racioncinio é a cada minuto que o camarada chega atrazado ele é penalizado(descontado)

O Problema é como fazer...alguma dica??

muito Grato

Editado por Eder
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
Ola..pessoal...tenho que fazer uma rotina envolvendo contagem de horas....eu até fiz um if...mas é muito trabalhoso.....acho que teria uma maneira de fazer com codigo mais enxuto e simples..mas não to conseguindo montar o codigo.

fiz assim atraves de if...funcionar perfeito:

procedure TForm1.Button1Click(Sender: TObject);
var HrTotal : TdateTime;
begin
  HrTotal:=STRTOTIME(Maskedit1.Text);
//
  If Hrtotal <= StrToTime('12:00:00') then
  Begin
    Maskedit2.Text:=('09:00:00');
    Exit;
  end;
{se for hora superior a 12:00:00 ele paga 09:00:00
e assim por diante como esta abaixo até zerar a hora do maskedit2 }
  If Hrtotal = strtotime('12:01:00') then Begin Maskedit2.Text:=('08:59:00'); end;
  If Hrtotal = strtotime('12:02:00') then Begin Maskedit2.Text:=('08:58:00'); end;
  If Hrtotal = strtotime('12:03:00') then Begin Maskedit2.Text:=('08:57:00'); end;
  If Hrtotal = strtotime('12:04:00') then Begin Maskedit2.Text:=('08:58:00'); end;
end;
é como esta no codigo acima o raciocinio...mas note que fiz um if pra verificar as horas minutos e dizer o que vai receber no maskedit2 mas é muito codigo...acho que um contador resolveria... O racioncinio é a cada minuto que o camarada chega atrazado ele é penalizado(descontado) O Problema é como fazer...alguma dica??
Eder, a menos que a regra de 12:00 mude, dá para você fazer a seguinte conta: 12:00 +09:00 = 21:00 - certo, então se o cara chegar após as 12:00, você diminui este valor da hora de chegada
procedure TForm1.Button1Click(Sender: TObject);
var 
  HrTotal : TdateTime;
begin
  HrTotal := StrToTime(Maskedit1.Text);
  If Hrtotal >= StrToTime('12:00:00') then // calcula se hora for 12:00 ou mais
    Maskedit2.Text := TimeToStr(StrToTime(21:00:00) -Hrtotal);
end;

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...